Pregunta

He estado trabajando en una ventana emergente que interactúa con el window.opener. Me encontré con un problema específico con IE no funciona cuando se trata de añadir un objeto. He creado un href="http://www.myotherdrive.com/dyn/file/295.131010.18022010.93833.6a64fi/window-opener-IE-error.htm" rel="nofollow noreferrer"> página .

Básicamente lo que hace es la demo se abre una ventana emergente con un botón. Se pretende poner de relieve las partes de la página como he descrito en mi pregunta anterior.

En la demo, al hacer clic en el botón ventana emergente anexa dos divs a la window.opener. Una div se añade como una cadena y el segundo se añade como un objeto. Me aparece un error en el IE cuando se trata de añadir un objeto. Aquí está el javascript:

$(':button').click(function(){
 $('#clicked').empty().show().html('Click detected!').fadeOut();
 var str = '<div class="highlight" style="position:absolute;height:50px;width:50px;left:150px;top:100px;background:#fc0;zIndex:99;">str</div>';
 var obj = $('<div/>', {
  'class': 'highlight',
  css: {
   position:   'absolute',
   height:     '50px',
   width:      '50px',
   left:       '100px',
   top:        '100px',
   background: '#08f',
   zIndex:     99
  }
 }).html('obj');
 try { $(window.opener.document.body).append(obj); } catch(err) { alert(err.description) };
 $(window.opener.document.body).append(str);
})

Por lo tanto, estoy pidiendo ayuda para localizar el problema con jQuery.

¿Fue útil?

Solución

No creo que IE le permitirá anexar un elemento creado en una ventana en el DOM de otra ventana. Es muy exigente con eso. Del mismo modo, se asustó veces si pasa construiste objetos de Javascript de una ventana a otra, especialmente si la ventana de creación va más adelante de distancia.

Trate de usar window.opener.$("<div/>") para crear su elemento.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top