gpt4 book ai didi

javascript - 在所有浏览器中传递来自 iFrame 的消息

转载 作者:技术小花猫 更新时间:2023-10-29 12:43:05 25 4
gpt4 key购买 nike

我有一个可嵌入的 iframe,将在第 3 方网站上使用。它有几个表格要填写,最后必须通知父页面它已完成。

换句话说,当点击按钮时,iframe 需要将消息传递给它的父级。

在“不,跨域策略是个 SCSS ”的海洋中跋涉之后,我找到了 window.postMessage ,HTML5 规范草案的一部分。

基本上,您在页面中放置以下 JavaScript 以从 iframe 捕获消息:

window.addEventListener('message', goToThing, false);

function goToThing(event) {
//check the origin, to make sure it comes from a trusted source.
if(event.origin !== 'http://localhost')
return;

//the event.data should be the id, a number.
//if it is, got to the page, using the id.
if(!isNaN(event.data))
window.location.href = 'http://localhost/somepage/' + event.data;
}

然后在 iframe 中,使用一些 JavaScript 向父级发送消息:

$('form').submit(function(){
parent.postMessage(someId, '*');
});

太棒了,对吧?唯一的问题是它似乎不适用于任何版本的 IE。所以,我的问题是:鉴于我需要将消息 iframe 传递到它的父级(两者都是我控制的),是否有一种我可以使用的方法可以跨任何 (>IE6) 浏览器?

最佳答案

在 IE 中你应该使用

attachEvent("onmessage", postMessageListener, false);

代替

addEventListener("message", postMessageListener, false);

关于javascript - 在所有浏览器中传递来自 iFrame 的消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7479246/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com