0

我希望每次单击重新加载时都会从父页面重新加载子页面(从父页面的链接打开)。

我使用了这个,但是当我刷新父页面时这不起作用。

<li><a href="js.php" title="alert-tab"  onclick="myWindow=window.open('http://www.google.com','_blank');">New Window</a></li>

<li><a href="#" title="alert-tab"  onclick="myWindow.location.reload();">Reload</a></li>

对这个问题有任何帮助吗?

4

2 回答 2

1

出于安全原因,您无法在现代浏览器中读取或更改(包括重新加载)使用另一个域的 URL 加载的窗口/iframe(例如htt://google.com,假设您不是 Google 编码员)。

所以你不能这样做,除非远程服务器授权它,这并不常见。

如果页面在同一个域上,这有效:

<li><a href="#" title="alert-tab"  onclick="myWindow=window.open('index2.html','_blank');">New Window</a></li>
<li><a href="#" title="alert-tab"  onclick="myWindow.location.reload();">Reload</a></li>​

在您的测试中要小心始终在http://(而不是file://)中打开,因为 2 个本地文件始终被视为单独的域。

请注意,如果您为窗口命名,则下次加载它将在同一个窗口中,即使您在两者之间重新加载了父页面:

<li><a href="#" title="alert-tab"  onclick="myWindow=window.open('index2.html','someName');">New Window</a></li>

因此,如果您想在重新加载父页面时重新加载子页面,您可以执行以下操作:

<li><a href="#" title="alert-tab" id=mylink>New Window</a></li>
<script>
function openPage(){
    myWindow=window.open('index2.html','someName');
    localStorage['open'] = 'yes';
}
window.onload = function(){
    document.getElementById('mylink').onclick=openPage;
    if (localStorage['open']=='yes')  myWindow=window.open('index2.html','someName');
    localStorage['open'] = 'no';
};
</script>

这个想法是在加载时检查子窗口上次是否打开,并在必要时强制重新加载。

当然,这仅适用于从同一域提供父级和子级的情况。

于 2012-07-17T10:53:48.467 回答
0

您可以重新打开页面,这在大多数情况下与重新加载具有相同的效果。

<li><a href="js.php" title="alert-tab"  onclick="myWindow=window.open('http://www.google.com','_blank');">New Window</a></li>

<li><a href="#" title="alert-tab"  onclick="myWindow=window.open('http://www.google.com','_blank');">Reload</a></li>
于 2012-07-17T10:56:36.163 回答