Frage

Ich habe auf einem Popup-Fenster arbeiten, dass interagiert mit dem window.opener. Ich fand ein konkretes Problem mit IE nicht funktioniert, wenn sie versuchen, ein Objekt anzuhängen. Ich habe die Einrichtung eines Demo-Seite hier .

Im Grunde, was die Demo tut, ist öffnet sich ein Popup-Fenster mit einem Button. Es ist zu markieren Teile der Seite bestimmt, wie ich in meinem beschrieben vorherige Frage .

In der Demo Klick auf der Popup-Fenster-Taste anhängt zwei divs zum window.opener. Ein div hinzugefügt wird als Zeichenkette und die zweite wird als ein Objekt hinzugefügt. Ich erhalte eine Fehlermeldung in IE, wenn sie versuchen, ein Objekt anzuhängen. Hier ist die 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);
})

Also, ich bin das Problem mit jQuery beim Aufspüren um Hilfe zu bitten.

War es hilfreich?

Lösung

Ich glaube nicht, dass der IE lassen Sie ein Element anhängen in einem Fenster in das DOM eines anderen Fensters erstellt. Es ist wirklich pingelig darüber. In ähnlicher Weise wird es manchmal ausgeflippt, wenn Sie Javascript von einem Fenster zum anderen Objekten aufgebaut passieren, vor allem, wenn das Erstellen von Fenstern später geht weg.

Versuchen window.opener.$("<div/>") mit Ihrem Element erstellen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top