javascript - 父頁(yè)面監(jiān)聽(tīng)iframe中的事件問(wèn)題
問(wèn)題描述
始終無(wú)法監(jiān)聽(tīng)到,是什么原因?parent.html
<body> <iframe src='http://www.gepszalag.com/wenda/son.html' frameborder='0'></iframe><script src='http://www.gepszalag.com/wenda/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='http://www.gepszalag.com/wenda/jquery.js'></script><script> $(function(){$(’#button’).on(’click’, function(){ $(window).trigger(’dosomething’);}); });</script></body>
謝謝!
Dont
剛才搜索時(shí)發(fā)現(xiàn)的,也不錯(cuò),兼容性可以MessengerJShttps://github.com/biqing/Mes...跨文檔通信解決方案
問(wèn)題解答
回答1:son.html
$(function(){$(’#button’).on(’click’, function(){ window.parent.$(window).trigger(’dosomething’);}); });
事件是在父頁(yè)面的jquery里定義的,要觸發(fā)需要交由父頁(yè)面的jquery來(lái)負(fù)責(zé)觸發(fā)。
jquery源碼太久沒(méi)看了,找半天,沒(méi)找到對(duì)應(yīng)的內(nèi)容來(lái)說(shuō)明。
回答2:頁(yè)面間通信可以使用 postMessage。
或者只在同一個(gè)頁(yè)面綁定和處理事件。
$(’#iframe’).contents().find(’#button’).on('click', function(){ $(window).trigger(’dosomething’);});回答3:
無(wú)法監(jiān)聽(tīng)到的原因是因?yàn)楦疙?yè)面通過(guò)on方法執(zhí)行事件綁定的時(shí)候,將事件回調(diào)函數(shù)注冊(cè)在了父頁(yè)面的jquery對(duì)象中。而子頁(yè)面在執(zhí)行trigger方法的時(shí)候只會(huì)尋找子頁(yè)面的jquery對(duì)象中注冊(cè)的事件回調(diào),所以在事件觸發(fā)后執(zhí)行不了父頁(yè)面注冊(cè)的事件回調(diào)函數(shù),因?yàn)樵谧禹?yè)面的jquery對(duì)象里找不到。
回答4:兩個(gè)jq, 兩個(gè)環(huán)境, 確定沒(méi)問(wèn)題么?
------ 上面是原答案, 下面是我被舉報(bào)以后的吐槽 -------
我想請(qǐng)問(wèn)舉報(bào)我的那個(gè), 兩個(gè)jq環(huán)境, 這是不是你無(wú)法觸發(fā)事件的原因? 我這個(gè)回答有什么問(wèn)題? 你舉報(bào)的理由是啥?
相關(guān)文章:
1. ddos - apache日志很多其它網(wǎng)址,什么情況?2. 怎么在phpstudy中用phpexcel上傳數(shù)據(jù)到MYSQL?3. javascript - 百度搜索網(wǎng)站,如何讓搜索結(jié)果顯示一張圖片加上一段描述,如圖;求教4. 二維數(shù)組怎么重新組合5. docker綁定了nginx端口 外部訪問(wèn)不到6. vue.js - centos 使用vue-cli. 執(zhí)行npm run dev 報(bào)錯(cuò)7. php由5.3升級(jí)到5.6后,登錄網(wǎng)站,返回的是php代碼,不是登錄界面,各位大神有知道的嗎?8. javascript - 如何在同一臺(tái)電腦上配置不同主機(jī)的2個(gè)git賬號(hào)?9. 發(fā)現(xiàn)了多個(gè)名稱(chēng)為[spring_web]的片段。相對(duì)順序不合法10. android - 使用vue.js進(jìn)行原生開(kāi)發(fā)如何進(jìn)行Class綁定
