运行时: MyPopWindow.postMessage(“测试”,“ 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);
});
答案 0 :(得分:0)
此错误消息来自App脚本之一Javascript driver files。 这是Google添加的额外安全措施,以防止人们使用postMessage系统。
Google似乎想强迫您使用其中一种接受的协议进行Windows /域之间的通信,即Execution API。 我尝试过其他方法,例如传递URL参数,但到目前为止没有一种方法可行,因为我无法从iframe中访问所有应用程序脚本。
我相信执行API是你最好的选择。