gpt4 book ai didi

javascript - window.postMessage 作为弹出窗口发送到 script.google.com

转载 作者:行者123 更新时间:2023-12-05 06:41:36 33 4
gpt4 key购买 nike

运行时:MyPopWindow.postMessage("测试", '我的域');我在 MyPopWindow 和 script.google.com 上出错:

(program):1 Failed to execute 'postMessage' on 'DOMWindow': The target origin provided ('mydomaine') does not match the recipient window's origin ('https://script.google.com').

运行时:MyPopWindow.postMessage("测试", ' https://script.google.com ');我在 MyPopWindow 上有一个错误:

dropping postMessage.. was from host mydomaine but expected host https : // ******-script.googleusercontent.com

mydomaine 页面中的来源:

  window.addEventListener("DOMContentLoaded", function() {
window.addEventListener("message", function(e) {
// wait for child to signal that it's loaded.
if ( e.data === "loaded" && e.origin === iframe.src.split("/").splice(0, 3).join("/")) {
// send the child a message.
alert(e.data);
}
})
}, false)

作为 WebApp 运行的我的 Google Apps 脚本的来源:

        document.addEventListener('DOMContentLoaded', function () {
// signal the parent that we're loaded.
window.parent.postMessage("loaded", "*");

// listen for messages from the parent.
window.addEventListener("message", function(e) {
if(event.origin !== 'mydomain') return;
var message = e.data;
alert(message);
}, false);
});

最佳答案

此错误消息来自应用程序脚本之一 Javascript driver files .这是 Google 添加的额外安全措施,以防止人们使用 postMessage 系统。

Google 似乎想强制您使用他们接受的协议(protocol)之一在窗口/域之间进行通信,即 Execution API .我尝试过其他方法,例如传递 URL 参数,但到目前为止都没有奏效,因为我无法从运行所有应用程序脚本的 iframe 中访问它们。

我相信 Execution API 是您最好的选择。

关于javascript - window.postMessage 作为弹出窗口发送到 script.google.com,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40014127/

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