Javascript Can';t在子窗口中调用父窗口的函数
我有一个问题,我不能在子窗口中调用父窗口的函数Javascript Can';t在子窗口中调用父窗口的函数,javascript,jquery,Javascript,Jquery,我有一个问题,我不能在子窗口中调用父窗口的函数 var value = "test"; function drawChart() { myWindow = window.open("", "Chart", "width=500, height=500"); myWindow.console.log(parent.value); myWindow.parent.createGraph(); } function createGraph(){ ... } 我可以访问全
var value = "test";
function drawChart() {
myWindow = window.open("", "Chart", "width=500, height=500");
myWindow.console.log(parent.value);
myWindow.parent.createGraph();
}
function createGraph(){
...
}
我可以访问全局变量值,但不能调用函数createGraph。
我得到一个错误:
未捕获类型错误:myWindow.createGraph不是函数
我将所有javaScript都移到了头部,但仍然无法工作。我想您的目标是:
window.opener
:返回对打开此当前窗口的窗口的引用
例如,在弹出窗口中调用函数,如下所示:
window.opener.createGraph();
编辑:当然,它不会以您一直尝试的方式工作!您需要在打开的子窗口的范围内调用父函数。您所做的是在触发子窗口的同一个函数中调用它们,而不是在子窗口中调用它们
var value = "test";
function drawChart() {
myWindow = window.open("", "Chart", "width=500, height=500");
myWindow.console.log(parent.value);
myWindow.parent.createGraph();
}
function createGraph(){
...
}
下面是一个与您的代码相同的黑客方法。记住,这只在铬合金上测试
$("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.";
}
有几件事我无法理解:从父窗口调用myWindow.parent.createGraph;但是createGraph在父级中,所以为什么不直接在父级中调用它呢。此外,您遇到的错误“UncaughtTypeError:myWindow.createGraph不是函数”很奇怪,因为它表明您正在调用“myWindow.createGraph()”而不是myWindow.parent.createGraph()。你能展示一个JSFIDLE吗?
myWindow
是你的子窗口,不是你的父窗口,对吗?试试。@DontVoteMeDown yap这是子窗口。请在、、或其他类似站点上提供演示。