我有问题,我无法在子窗口中调用父窗口的功能。
var value = "test";
function drawChart() {
myWindow = window.open("", "Chart", "width=500, height=500");
myWindow.console.log(parent.value);
myWindow.parent.createGraph();
}
function createGraph(){
...
}
我可以访问全局变量值,但不能调用函数createGraph。 我收到了错误:
未捕获的TypeError:myWindow.createGraph不是函数
我把所有javaScript都移到了头上,但仍然没有工作。
答案 0 :(得分:1)
我想你是在追求:
window.opener
:返回对打开当前窗口的窗口的引用
因此,例如,弹出窗口中的 ,您可以调用您的函数:
window.opener.createGraph();
编辑:当然,它不适用于您尝试过的方式!您需要在打开的子窗口的范围内调用父函数。你正在做的是在触发子窗口的同一个函数中调用它们,并在子窗口中调用 NOT 。
这是一种沿着代码相同方向的hacky方式。请记住,这仅在Chrome上进行了测试。
$("button").on("click", function() {
var win = window.open("", "Chart", "width=400,height=400");
win.console.log("New window");
win.callFunc = function(fn) {
win.console.log(fn());
}
win.callFunc(aParentFunction);
});
function aParentFunction() {
return "Hiya, I am your dad.";
}