javascript – Problem mit der übergeordneten Seite, die Ereignisse im Iframe überwacht
世界只因有你
世界只因有你 2017-05-16 13:35:56
0
4
867

Ich kann immer noch nicht zuhören, was ist der Grund?

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>

Danke!

Nicht

Ich habe es gerade bei der Suche gefunden, es ist nicht schlecht, die Kompatibilität ist gut
MessengerJS
https://github.com/biqing/Mes...
Dokumentenübergreifende Kommunikationslösung

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

Antworte allen(4)
滿天的星座

son.html

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

事件是在父页面的jquery里定义的,要触发需要交由父页面的jquery来负责触发。

jquery源码太久没看了,找半天,没找到对应的内容来说明。

漂亮男人

页面间通信可以使用 postMessage。

或者只在同一个页面绑定和处理事件。

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

无法监听到的原因是因为父页面通过on方法执行事件绑定的时候,将事件回调函数注册在了父页面的jquery对象中。而子页面在执行trigger方法的时候只会寻找子页面的jquery对象中注册的事件回调,所以在事件触发后执行不了父页面注册的事件回调函数,因为在子页面的jquery对象里找不到。

为情所困

两个jq, 两个环境, 确定没问题么?

------ 上面是原答案, 下面是我被举报以后的吐槽 -------

我想请问举报我的那个, 两个jq环境, 这是不是你无法触发事件的原因?
我这个回答有什么问题? 你举报的理由是啥?

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!