从侧边栏中的TBA文件打开一个弹出窗口。
错误是由于尝试从弹出窗口中指向侧边栏打开器中的json全局变量而引起的,我想这是原点混乱的地方。
答案 0 :(得分:0)
从屏幕截图中可以看到,我已经能够将json对象从侧边栏中的TBA界面传输到弹出窗口,反之亦然。 window.postMessage()
成功了。不如在iframe的父级中使用nset(命名集的层次结构)好,但我认为它是可行的。也许可以将nset分为共享包和责任包,以提高速度和灵活性。
不仅仅是照片;这是代码:
在弹出窗口中
window.addEventListener("message", receiveMessage, false);
function start(){
$(document).ready(function(){
root = '1grsin';
trial = 'msm4r';
orig = 'ozs29';
code = orig;
path = "https://api.myjson.com/bins/"+code;
$.get(path)
.done((data, textStatus, jqXHR)=>{
nset = data;
opener.postMessage(nset,"https://n-rxnikgfd6bqtnglngjmbaz3j2p7cbcqce3dihry-0lu-script.googleusercontent.com");
})
})
}
function receiveMessage(event) {
console.log(event.data);
$("#notice").html("Origin: "+ event.origin)
}
在TBA的边栏中
window.addEventListener("message", receiveMessage, false);
var popup;
function openMonitor(nset){
var params = [
'height=400',
'width=400'
].join(',');
let file = 'http://glasier.hk/blazer/model/model.html';
popup = window.open(file,'popup_window', params);
popup.moveTo(100,100);
}
function receiveMessage(event) {
console.log("origin: " +event.origin);
console.log(event.data);
popup.postMessage(nset, "http://glasier.hk");
}