Maison  >  Article  >  interface Web  >  Comment puis-je surveiller l'événement onLoad dans les fenêtres contextuelles créées à l'aide de window.open ?

Comment puis-je surveiller l'événement onLoad dans les fenêtres contextuelles créées à l'aide de window.open ?

Patricia Arquette
Patricia Arquetteoriginal
2024-10-24 13:35:31159parcourir

How Can I Monitor the onLoad Event in Pop-ups Created Using window.open?

Surveillance de l'événement onLoad dans les fenêtres contextuelles créées avec window.open

La détection de l'événement onLoad dans une fenêtre ouverte à l'aide de window.open présente un défi dans divers navigateurs. Le code suivant tente de l'implémenter, mais échoue :

window.popup = window.open($(this).attr('href'), 'Ad', 'left=20,top=20,width=500,height=500,toolbar=1,resizable=0');
$(window.popup).onload = function()
{
    alert("Popup has loaded a page");
};

Solutions

Pour réussir à capturer l'événement onLoad, les méthodes suivantes sont recommandées :

1. addEventListener

Pour les navigateurs modernes, utilisez la méthode addEventListener comme suit :

var myPopup = window.open(...);
myPopup.addEventListener('load', myFunction, false);

2. attachEvent (pour IE)

Si la prise en charge d'Internet Explorer est cruciale, utilisez la méthode attachEvent :

myPopup[myPopup.addEventListener ? 'addEventListener' : 'attachEvent'](
  (myPopup.attachEvent ? 'on' : '') + 'load', myFunction, false
);

Attention pour la prise en charge d'IE

La prise en charge d'IE peut être fastidieuse. Si possible, envisagez de l'éviter ou de mettre en œuvre des solutions spécifiques pour la compatibilité IE.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn