我想从父窗口调用Iframe中的函数。如
var iframe = document.getElementById("myframe");
if (iframe) {
var iframeContent = (iframe.contentWindow || iframe.contentDocument);
iframeContent.targetFunction();
}
但它不起作用。
由于动态添加了iframe的内容(所有内容都添加到iframe on demand even js file
);
我跟着这个
Invoking JavaScript code in an iframe from the parent page
有什么方法可以解决这个问题吗?
答案 0 :(得分:0)
html中有一个名为postmessage
的概念
在相应的脚本中尝试以下代码
在父母 中
提到:https://developer.mozilla.org/en-US/docs/Web/API/Window.postMessage 希望有所帮助
iFrame中的if (window.addEventListener) {
window.addEventListener ("message", receive, false);
}
else {
if (window.attachEvent) {
window.attachEvent("onmessage",receive, false);
}
}
function receive(event){
var data = event.data;
if(typeof(window[data.func]) == "function"){
window[data.func].call(null, data.params[0]);
}
}
function alertMyMessage(msg){
alert(msg);
}
function send(){
window.parent.window.postMessage(
{'func':'alertMyMessage','params':['Thanks for Helping me']},
'http://www.my-website.com'
);
}