窗口.打开命名窗口是每次点击打开新窗口

window.open Named Window is opening new window on each click

本文关键字:窗口 新窗口      更新时间:2023-09-26

在使用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(....);
}