MainWindow创建一个ChildWindow需要利用的JavaScript对象。
我的MainWindow.html目前看起来像这样
<html>
<body>
<script>
var varObject = {type:"Error", message:"Lots"};
</script>
<iframe class="child" src="ChildWindow.html"></iframe>
</body>
</html>
ChildWindow.html看起来像这样
<html>
<body>
<script>
console.log(varObject.type); // goal is to log "Error"
</script>
</body>
</html>
ChildWindow正在尝试使用在MainWindow中创建的对象,当然它不能,因为我还不知道如何通过它。
我已尝试使用Google,但我发现的大多数解决方案都将值作为字符串而不是变量传递。
答案 0 :(得分:3)
可以通过将对象分配给iframe的window
来简单地传递对象。
:
var frame = document.querySelector("iframe");
frame.contextWindow.object_of_interest = object_of_interest;
在iframe的窗口中
console.log(window.object_of_interest);
答案 1 :(得分:2)
您应该使用window.postMessage
向您网站中嵌入的iFrame发送消息。
答案 2 :(得分:1)
请查看以下代码:
<html>
<body>
<script>
var varObject = {type:"Error", message:"Lots"};
var child = document.getElementsByClassName("child")[0];
var childWindow = child.contentWindow;
childWindow.postMessage(JSON.stringify(varObject),*);
</script>
<iframe class="child" src="ChildWindow.html"></iframe>
</body>
</html>
在ChildWindow.html
<html>
<body>
<script>
function getData(e){
let data = JSON.parse(e.data);
console.log(data);
}
if(window.addEventListener){
window.addEventListener("message", getData, false);
} else {
window.attachEvent("onmessage", getData);
}
</script>
</body>
</html>
希望有所帮助:)