运行时:MyPopWindow.postMessage(“Test”,'mydomaine');我在MyPopWindow上遇到错误script.google.com:
(程序):1无法在“DOMWindow”上执行“postMessage”:提供的目标原点('mydomaine')与收件人窗口的原点('https://script.google.com')不匹配。
运行时:MyPopWindow.postMessage(“Test”,'https://script.google.com');我在MyPopWindow上有一个错误:
正在删除postMessage..来自主机mydomaine,但应为主机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)
我的Google Apps脚本运行为WebApp的源代码:
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);
});
2条答案
按热度按时间jogvjijk1#
此错误消息来自应用程序脚本Javascript driver files之一。这是谷歌增加的额外安全措施,以防止人们使用postMessage系统。
Google似乎想强迫你使用他们接受的Windows/域之间通信协议之一,即Execution API。我尝试过其他方法,比如传递URL参数,但到目前为止没有一个有效,因为我无法从所有应用程序脚本运行的iframe中访问它们。
我相信执行API是你最好的选择。
svdrlsy42#
要从Google apps Scriptwindow/iframe向父窗口**发送消息,我发现下面的代码对我来说是有效的;
可悲的是,我还没有,至少还没有,找到一种方法从父窗口发送消息到Google应用程序脚本窗口/iframe。
------编辑-------
我在**从父窗口向iframe发送消息时找到了解决方案!**其实很简单
父窗口编码;
Google apps脚本中.gs文件的代码;