upgrading that sesión script requiere problemas please para iniciar google funciona enable deshabilitar cómo consider con chrome and activar javascript asp.net-mvc model-view-controller iframe internet-explorer-9

javascript - that - IE9 arroja excepciones cuando carga scripts en iframe. ¿Por qué?



to view this video please enable javascript and consider upgrading to a web browser that (6)

Colocar el siguiente bloque de scripts en la parte superior del iFrame html <head> parece resolver el problema en mi caso. Básicamente, obliga al iframe a volver a cargar, lo que, como algunos han señalado, resuelve el problema. Parece relativamente seguro, porque, sin cosas como ''Objeto'' y ''Fecha'', javascript es esencialmente inútil.

<script type="text/javascript"> if(typeof(Object)==="undefined"){ window.location.reload(); } </script>

Condición previa:

Tengo una página aspx con iframe adentro. Este iframe apunta a la URL manejada por MVC en el mismo sitio (es un sitio híbrido, tanto ASP.NET estándar como ASP.NET MVC). La página resultante presentada por MVC contiene muchas referencias de scripts.

Problema:

IE9 arroja una excepción en cada script que carga en iframe. Estas excepciones son similares a esta:

Error: ''Function'' is undefined

Es decir, dice que las cosas más básicas que tiene cada ventana están de alguna manera ausentes. Una vez que haya hecho clic en todas estas ventanas emergentes, ¡la página simplemente funciona como se diseñó!
Si cargo una URL del atributo <iframe /> src en el navegador directamente, todo funciona como se espera.
Si abro la página en otro navegador (probé Opera, Firefox), todo funciona como se espera, sin errores.

Entonces, ¿qué quiere IE9?


Hay esta página msdn sobre este error (o característica).

Obtiene este tipo de errores cuando mueve el elemento iframe en DOM. En tales casos, IE 9 basura recoge el iframe (que causa el error no definido) y lo vuelve a cargar en otra posición.

En general, debe crear el elemento, establecer su atributo src solo una vez y luego colocarlo en algún lugar del árbol DOM una vez . No tiene nada que ver con el código que se ejecuta en el propio iframe.


He encontrado esta misma situación en la naturaleza. Síntomas básicos:

  • Cargas código de script en un iframe
  • El código del script se ejecuta temprano (desde la sección de la cabeza o la parte superior del cuerpo)
  • IE se queja de algún objeto nativo que falta

Descubrí que, a menudo, se puede evitar retrasando la ejecución del código del script hasta onload o DOMContentLoaded ... No tengo mucha ayuda, pero este es uno de los errores de scripts de IE más difíciles que he encontrado. Aumenté el puntaje de su pregunta, espero que otros la encuentren también y podamos obtener una respuesta más detallada.

También vea esta pregunta: Error en Internet Explorer 9 (no en versiones anteriores u otros navegadores) al incluir jQuery en un iframe



La investigación adicional reveló que la solución es agregar el iframe ofensivo a su ubicación dom ANTES de configurar el atributo ''src''.

Una vez que se ha establecido ''src'', cambiar la ubicación del iframe dentro de la pila DOM obliga a IE9 a recogerla.

Una vez que se ha configurado ''src'', iframe se puede redimensionar y cambiar mediante el posicionamiento css, pero no puede cambiar la ubicación relativa en la pila DOM.

Muchas veces, los complementos como cuadros de diálogo y lightboxes rellenarán un iframe con src ya configurado en el dom, luego se agregará / precederá o lo que sea, lo que activará el GC.


function waitForjQuery(){ if(typeof jQuery!=''undefined''){ //Do yor stuff! } else{ setTimeout(function(){ waitForjQuery(); },500); } } waitForjQuery();