El objeto misterioso no admite este error de método en IE8 en google.load

Estoy usando la búsqueda de Google JSAPI en mi aplicación de búsqueda local. Todo funciona bien en todos los navegadores, excepto en IE 8. El problema es después de que la línea específica de código de my jquery base object y google objetos están drreferenced.

Es un código directo. Soy capaz de reproducir el problema usando este jsfiddle .

el código html es

  Test Map    

y JS

 $(function() { alert(1); google.load('search',1); alert($); google.setOnLoadCallback(function() { alert(2); }); }); 

después de la línea google.load('search',1) recibí el siguiente error

Error: Object doesn't support this property or method

en $ y google .

Esto es totalmente una pesadilla. Estoy luchando con esto por horas sin suerte. ¿Algún experto en IE aquí tiene una idea?

Cambie su jsFiddle a “Sin envoltura (cuerpo)” y modifique su función de manera que …

 //$(function() { //alert(1); google.load('search',1); alert($); google.setOnLoadCallback(function() { alert(2); }); //}); 

Casi la misma pregunta que se hace aquí: Google no se define mediante la API de visualización de Google; posiblemente la culpa de jQuery

Este problema se debe a document.write en la API de load de Google, similar a esta pregunta . El guión está diferido, como se ve en la siguiente imagen:

introduzca la descripción de la imagen aquí

Para resolver el problema, no envuelva el código en un controlador onload / domready.

   

Tenga en cuenta que JSfiddle coloca cualquier contenido en la esquina superior izquierda dentro de las tags . Por lo tanto, una simple copia y pegado del código en JSFiddle no mostrará los resultados correctos.

He enfrentado los mismos problemas. Aquí está la resolución.

Si desea utilizar la API de visualización de Google en JQuery. Por favor, siga el siguiente enfoque