2011-09-07 70 views
0

这可能吗?加载时在新窗口中调用函数

var win = window.open(url); 

win.func = function() { 
    win.someFunc(); 
    // ... 
} 

然后我想func被调用,当win的脚本和DOM满载。 jQuery解决方案也会很好。

+0

那不是创造直接跨站点脚本问题? – Mat

+0

嗯..例如? –

+0

你会注入JavaScript到你打开的任何窗口。这几乎是跨站脚本的定义。如果目标页面是“你的”,你并不真的需要这个(使用cookies或请求参数,或其他)。 – Mat

回答

1

为什么不直接在你的HTML与window.open加载使用。

jQuery(document).ready(function() { 
    someFunc(); 
}); 

UPDATE:如果你要通过参数比你可以像TJHeuvel指出,从调用someFunc首战窗口准备函数调用的函数。

或者你可以有“全局”变量,在你的主窗口,包含您的参数比你someFunc(),你可以像

window.opener.myparameters.param1; 
window.opener.myparameters.param2; 

假设myparameters具有参数1和pram2领域的访问。

UPDATE:实例

myparameters = new Object(); 
myparameters.param1 = "1"; 
myparameters.param2 = "2"; 

myparameters = {param1: "1", param2: "2"}; 
+0

噢,对不起,我忘记了,父窗口应该将参数传递给孩子。 –

0

您可以让子窗口调用父函数onload。因此:

window.onload = function() 
{ 
window.opener.ChildLoaded(this); 
}