Domanda

Ho lavorato su una finestra pop-up che interagisce con il window.opener. Ho trovato un problema specifico con IE non funziona quando si tenta di aggiungere un oggetto. Ho installato un href="http://www.myotherdrive.com/dyn/file/295.131010.18022010.93833.6a64fi/window-opener-IE-error.htm" rel="nofollow noreferrer"> pagina .

In sostanza ciò che la demo non fa altro che apre una finestra pop-up con un pulsante. Esso è destinato a evidenziare porzioni della pagina, come ho descritto nel mio domanda precedente .

Nella demo, cliccando sul bottone finestra popup aggiunge i due div al window.opener. Una div è aggiunto come una stringa e il secondo viene aggiunto come un oggetto. Ottengo un errore in IE quando si tenta di aggiungere un oggetto. Ecco il 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);
})

Quindi, sto chiedendo aiuto nel rintracciare il problema con jQuery.

È stato utile?

Soluzione

Non credo che IE vi permetterà di aggiungere un elemento creato in una finestra nel DOM di un'altra finestra. E 'davvero esigente riguardo. Allo stesso modo, si ottiene fuori di testa a volte se si passa costruito oggetti JavaScript da una finestra all'altra, soprattutto se la finestra creando poi va via.

Prova a usare window.opener.$("<div/>") per creare il vostro elemento.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top