Hai bisogno di aiuto rintracciare un bug jQuery
-
21-09-2019 - |
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.
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.