在使用window.open()启动窗口时,每次单击按钮都会启动一个新的browser实例,即使调用函数具有命名窗口
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
</head>
<body>
<script type="text/javascript">
function OpenNamedWindow() {
var w2 = window.open("http://stackoverflow.com", "myWindow", "width=500px;height=500px");
}
</script>
<input type="button" onclick="OpenNamedWindow();" value="Launch App" />
</body>
</html>
在启动页面后,当我试图访问window.name时,它显示为空。
我做了一些搜索,看起来是跨域导致的问题。
如何在同一实例中加载页面,而不是一直启动新的浏览器窗口?
这是一个技巧
function openInNewTab(url) {
var win = window.open(url, '_blank');
win.focus();
}
但即使这样,可能也不应该在所有浏览器中工作,这取决于用户的配置
这个话题还在stackoverflow中。
试着自己在以下链接查看
使用JavaScript在新选项卡(而不是新窗口)中打开URL
一次只打开一个窗口:
var window_name = null; // global
...
function open_new_window() {
if (window_name && !window_name.closed) {
window_name.close();
window_name = window.open(....);
}