如何通过子窗口访问/调用父窗口脚本

时间:2016-12-01 06:51:53

标签: jquery window

我正试图像这样打开子窗口

{
  var popWindow = window.open(postUrl, "popupWindow", settings);
}

现在我想访问一些父脚本函数。如果我直接调用会得到这样的未定义函数异常

  

(未捕获的ReferenceError:未定义getAllFilter)

如何解决这个问题。

2 个答案:

答案 0 :(得分:1)

window.parent包含对当前窗口或子帧的父级的引用。

window.parent.CallParentFuntion();

Read More on MDN

答案 1 :(得分:0)

要访问这些功能,您可以在子窗口的页面中包含js文件。如果您使用内联脚本,则必须将它们移动到js文件中。如果您只希望函数影响子窗口中的页面,那么就是它。如果你想让两个窗户影响彼此状态,你将不得不继续阅读。

如果窗口中的页面属于您的网站,您可以尝试以下来自existing answer的代码:

var win = window.open("/path_to_page");
win.onload = function(){ alert(win.document.title); };

如果您在窗口中访问外国网站,则可以使用window.postMessage()