javascript - Problème avec la page parent qui écoute les événements dans l'iframe
世界只因有你
世界只因有你 2017-05-16 13:35:56
0
4
918

Je n’arrive toujours pas à écouter, quelle en est la raison ?

parent.html

<body>
    <iframe id="iframe" src="son.html" frameborder="0"></iframe>

<script src="./jquery.js"></script>
<script>
    $(function(){
        $($('#iframe')[0].contentWindow).on('dosomething', function(){
            alert('接收到到iframe的事件');
        });
    });
</script>
</body>

son.html

<body>
    
    <h1>son</h1>
    <button id="button">trigger</button>

<script src="./jquery.js"></script>
<script>
    $(function(){
        $('#button').on('click', function(){
            $(window).trigger('dosomething');
        });
    });
</script>
</body>

Merci !

Ne pas

Je viens de le trouver en cherchant, c'est pas mal, la compatibilité est bonne
MessengerJS
https://github.com/biqing/Mes...
Solution de communication cross-document

世界只因有你
世界只因有你

répondre à tous(4)
滿天的星座

son.html

 $(function(){
        $('#button').on('click', function(){
            window.parent.$(window).trigger('dosomething');
        });
    });

L'événement est défini dans le jquery de la page parent pour se déclencher, le jquery de la page parent doit être responsable du déclenchement.

Je n'ai pas regardé le code source de jquery depuis longtemps. J'ai cherché pendant longtemps et je n'ai pas trouvé le contenu correspondant à expliquer.

漂亮男人

PostMessage peut être utilisé pour communiquer entre les pages.

Ou simplement lier et gérer les événements sur la même page.

$('#iframe').contents().find('#button').on("click", function(){
    $(window).trigger('dosomething');
});
Peter_Zhu

La raison pour laquelle il ne peut pas être surveillé est que lorsque la page parent effectue une liaison d'événement via la méthode on, la fonction de rappel d'événement est enregistrée dans l'objet jquery de la page parent. Lorsque la page enfant exécute la méthode de déclenchement, elle recherchera uniquement le rappel d'événement enregistré dans l'objet jquery de la page enfant. Par conséquent, une fois l'événement déclenché, la fonction de rappel d'événement enregistrée sur la page parent ne peut pas être exécutée car elle ne le peut pas. être trouvé dans l'objet jquery de la page enfant.

为情所困

Deux jqs, deux environnements, tu es sûr qu'il n'y a pas de problème ?

------Ce qui précède est la réponse originale, et ce qui suit est ma plainte après avoir été signalée -------

Je voudrais demander à la personne qui m'a signalé, deux environnements jq, est-ce la raison pour laquelle vous ne pouvez pas déclencher l'événement ?
Qu'est-ce qui ne va pas dans ma réponse ? Quelle est la raison de votre signalement ?

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal