出于安全原因,您无法在现代浏览器中读取或更改(包括重新加载)使用另一个域的 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>
这个想法是在加载时检查子窗口上次是否打开,并在必要时强制重新加载。
当然,这仅适用于从同一域提供父级和子级的情况。