回答
這工作:
parent.$('body').trigger('eventName');
事件觸發裏面的iframe將主文件中被檢測到。
我遇到了類似的問題,並使用window.postMessage來解決。
目前,API只支持傳遞字符串,但如果您修改解決方案,它可以是強大的。更多細節here
從源頁面(由一個iframe被消耗):
的postMessage API預計2個PARAMS - 消息,目標
例如:window.parent.postMessage("HELLO_PARENT", 'http://parent.com');
從父頁面(包含iframe中。如集裝箱):
添加事件監聽器,你通常會
window.addEventListener('message', handleMessage, false);
定義與event.origin檢查(安全)的功能\
function handleMessage(event) { if (event.origin != "h ttp://child.com") { return; } switch(event.data.message) { case "HELLO_PARENT": alert("Hello Child"); break; } }
我在每個IE瀏覽器和邊緣都有傳遞對象的麻煩 – migueloop
@FarzadYZ - 你的評論似乎與[MDN說的是什麼]相沖突(https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage) :「'window.postMessage()'方法安全地啓用了跨源通信。」 –
@JohnS你說得對,我會刪除評論。 –
一致的答案,同時支持同域和跨域I幀是使用事件系統。
目標是將自定義事件從iframe發送到父級。
在iframe源文件:
var myCustomData: { foo: 'bar' }
var event = new CustomEvent('myEvent', { detail: myCustomData })
window.parent.document.dispatchEvent(event)
和包含iframe的父文件中:
window.document.addEventListener('myEvent', handleEvent, false)
function handleEvent(e) {
console.log(e.detail) // outputs: {foo: 'bar'}
}
- 1. Javascript - 從子元素觸發自定義父級html事件
- 2. 定義並觸發自定義事件
- 3. 從iframe觸發事件
- 4. 如何從父母觸發按鍵事件到iframe?
- 5. 從iframe觸發函數,但是像從父文檔觸發一樣執行?
- 6. 如何從父級單擊事件觸發iframe發佈
- 7. 自定義事件觸發的JavaScript
- 8. jquery - 觸發自定義事件
- 9. 自定義事件觸發多次
- 10. .trigger()不會觸發自定義事件
- 11. 自定義事件的延遲觸發
- 12. `mousemove`和觸發自定義事件
- 13. jQuery同步觸發自定義事件?
- 14. 的jQuery - 觸發事件從內部的iFrame的父
- 15. window.postMessage不工作從iframe到父文檔
- 16. 如何從子窗口將自定義事件觸發回父窗口?
- 17. 自定義事件文檔onContentChange
- 18. 從iFrame中觸發javascript事件
- 19. 讓iFrame觸發body.onclick事件
- 20. IFRAME .load事件不觸發
- 21. AS3自定義事件沒有觸發文檔類(使用DispatchEvent動作)
- 22. 觸發並綁定到自定義事件?
- 23. jquery自定義事件沒有觸發或觸發
- 24. 針對文檔的iframe元素觸發事件事件的操作
- 25. 如何從iframe中觸發點擊事件到其父級的元素?
- 26. 確保自定義事件在h5validate事件後觸發
- 27. 觸發自定義事件更新/從房間道路刪除
- 28. 按鈕點擊事件沒有從自定義DataGridViewCell觸發
- 29. 自定義文本框事件未觸發
- 30. jQuery事件觸發文檔就緒
請寫更清楚什麼是'同一個source'。 –
你可以從你的iframe調用parent.functionname()。 – user10
相同的協議,相同的主機,相同的端口 –