在javascript中设置新窗口的回调函数

2023-12-09

有没有一种简单的方法可以为在 javascript 中打开的新窗口设置“回调”函数?我想从新窗口运行父级的函数,但我希望父级能够设置此特定函数的名称(因此不应在新窗口页面中对其进行硬编码)。

例如在父级中我有:

function DoSomething { alert('Something'); }
...
<input type="button" onClick="OpenNewWindow(linktonewwindow,DoSomething);" />

在子窗口中我想:

<input type="button" onClick="RunCallbackFunction();" />

问题是如何创建这个OpenNewWindow and RunCallbackFunction功能。我想将函数的名称作为查询参数发送到新窗口(服务器端脚本在生成的子级 HTML 中生成适当的函数调用),这是可行的,但我在想是否有另一种或更好的方法来完成这,也许甚至不需要服务器端修补。

纯 JavaScript、服务器端解决方案和 jQuery(或其他框架)都受到欢迎。


更新评论:如果您通过以下方式打开窗口window.open()然后在子页面中,您可以将子页面中的函数设置为指向父函数的引用,因此在子页面中包含以下内容:

var RunCallbackFunction = function() { }; //reference holder only

然后在您的父窗口(开启程序)中,在加载子窗口时设置该函数,如下所示:

//random function you want to call
function myFunc() { alert("I'm a function in the parent window"); }

//to actually open the window..
var win = window.open("window.html");
win.onload = function() { win.RunCallbackFunction = myFunc; };

这会将您的父级中的函数分配为该子级的目标...如果您愿意,您可以将每个子级指向不同的函数,它们都是独立的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在javascript中设置新窗口的回调函数 的相关文章

随机推荐