有没有一种简单的方法可以将“回调”功能设置为在javascript中打开的新窗口?我想在新窗口中运行父函数,但我希望父函数能够设置此特定函数的名称(因此不应在新的Windows页面中对其进行硬编码)。
例如在父母中,我有:
function DoSomething { alert('Something'); } ... <input type="button" onClick="OpenNewWindow(linktonewwindow,DoSomething);" />
在子窗口中,我要:
<input type="button" onClick="RunCallbackFunction();" />
问题是如何创建它OpenNewWindow和RunCallbackFunction功能。我虽然想将函数的名称作为查询参数发送到新窗口(服务器端脚本在生成的子HTML中生成适当的函数调用),但是我在考虑是否还有另一种或更好的方法来完成这,也许甚至不需要服务器端修补。
OpenNewWindow
RunCallbackFunction
纯JavaScript,服务器端解决方案和jQuery(或其他框架)都受到欢迎。
已更新,以获取注释: 如果您通过来打开窗口,window.open()则可以在子页面中将子菜单中的函数设置为指向父函数的引用,因此请在子页面中将其设置为:
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; };
这会将您父母中的功能分配为该孩子的目标…并且您可以根据需要将每个孩子指向一个不同的功能,因为他们都是独立的。