Szt*_*upY 23 html javascript callback new-window
有没有一种简单的方法可以将"回调"功能设置为在javascript中打开的新窗口?我想从新窗口运行父项的函数,但我希望父项能够设置此特定函数的名称(因此不应在新的Windows页面中对其进行硬编码).
例如在我的父母:
function DoSomething { alert('Something'); }
...
<input type="button" onClick="OpenNewWindow(linktonewwindow,DoSomething);" />
Run Code Online (Sandbox Code Playgroud)
在子窗口中我想:
<input type="button" onClick="RunCallbackFunction();" />
Run Code Online (Sandbox Code Playgroud)
问题是如何创建这个OpenNewWindow
和RunCallbackFunction
功能.我虽然有关发送该函数的名称作为查询参数的新窗口(其中服务器端脚本生成生成的孩子的HTML相应的函数调用),它的工作原理,但我在想是否有另一个,或更好的方法完成这可能是甚至不需要服务器端修改的东西.
纯javascript,服务器端解决方案和jQuery(或其他框架)都受到欢迎.
Nic*_*ver 54
更新评论: 如果您window.open()
在子页面中打开窗口,则可以在子项中设置一个函数,使其成为指向父函数的引用,因此请在子页面中进行以下操作:
var RunCallbackFunction = function() { }; //reference holder only
Run Code Online (Sandbox Code Playgroud)
然后在您的父(开启者)中,在该子窗口加载时设置该函数,如下所示:
//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; };
Run Code Online (Sandbox Code Playgroud)
这会将您父母的功能分配给该孩子的目标......如果您愿意,您可以将每个孩子指向不同的功能,他们都是独立的.