1

我有一个从我的 javascript 代码打开的窗口:

 window.open('/Item/Article/' + item.ItemID(), 'ItemArticle', 
'resizable=yes,scrollbars=yes,height=' + res.height + ',width=' + res.width + ',
 left=0', null);

当满足某个条件时,我想更改该窗口的 html 地址,即将其重新加载到新位置。

如何为手动打开的窗口设置 ID 或锚点,以便我可以使用此 ID 重新加载具有新位置的窗口。

4

4 回答 4

1

您可以 1) 引用您的窗口和 2) 在使用window.open().

var windowObjectReference = window.open(strUrl, strWindowName[, strWindowFeatures]);

您可以通过选择相同的窗口名称(第二个参数)来修改您的窗口。

var myWindow = window.open("http://google.com","myWindow");
// opens SO in the same window
window.open("http://stackoverflow.com","myWindow");
// the following will only work if it's the same domain, else subject to SOP -
// so in the case of initially opening it with google, this won't work!
myWindow.document.location.href = "/example/test.html";
// closes your window
myWindow.close();

因此,在您的情况下,以下行应该有效:

window.open('newURL','ItemArticle'/* optionally: ,'Parameters'*/);
于 2013-07-10T10:54:21.170 回答
1

您可以将窗口存储在变量中,然后像通常控制窗口对象一样控制它。

以下代码将打开一个新窗口,并在 4 秒后重新加载到新位置。

myWindow=window.open('','','width=200,height=100');
myWindow.focus();
setTimeout(function(){
    myWindow.document.location = "http://www.google.com";
}, 4000);
于 2013-07-10T10:55:57.333 回答
0

如果您想从窗口 A 更新窗口 B 的 URL,您可以window.open提供与第二个参数相同的名称。这将简单地“重新打开”已经打开的窗口,并将其重定向到新的 URL。

window.open('http://www.google.com','googleWindow');
window.open('http://www.stackoverflow.com','googleWindow');

上面的代码将在 Google 上打开一个窗口,并立即将其重定向到 Stack Overflow

但是不确定这是否会自动聚焦窗口!

于 2013-07-10T10:53:02.070 回答
0

您可以使用以下方式访问打开子窗口的父窗口中的功能。

window.opener.ParentWindows(); //Here ParentWindows() is userdefined function coded by me in parent window

于 2013-07-10T10:54:29.477 回答