Question

Je travaille sur une fenêtre pop-up qui interagit avec le window.opener. J'ai trouvé un problème spécifique avec IE ne fonctionne pas lorsque vous essayez d'ajouter un objet. J'ai mis en place un page de démonstration .

En fait ce que la démo ne s'ouvre une fenêtre pop-up avec un bouton. Il est destiné à mettre en évidence des parties de la page comme je l'ai dans mon question précédente .

Dans la démo, en cliquant sur le bouton de la fenêtre pop-up deux divs à Ajoute l'window.opener. Un div est ajouté en tant que chaîne et le deuxième est ajouté comme un objet. Je reçois une erreur dans IE lors de la tentative d'ajouter un objet. Voici le 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);
})

Alors, je demande de l'aide à traquer le problème avec jQuery.

Était-ce utile?

La solution

Je ne pense pas que IE vous permettra de créer Ajoute un élément dans une fenêtre dans le DOM d'une autre fenêtre. Il est vraiment pointilleux à ce sujet. De même, il se flippé parfois si vous passez des objets Javascript construit d'une fenêtre à une autre, surtout si la fenêtre va créer plus tard loin.

Essayez d'utiliser window.opener.$("<div/>") pour créer votre élément.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top