Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何仅打开一个窗口弹出窗口,并将其限制为仅打开一个窗口_Javascript_Html_Popup_Popupwindow - Fatal编程技术网

Javascript 如何仅打开一个窗口弹出窗口,并将其限制为仅打开一个窗口

Javascript 如何仅打开一个窗口弹出窗口,并将其限制为仅打开一个窗口,javascript,html,popup,popupwindow,Javascript,Html,Popup,Popupwindow,我只想在单击URL后打开一个弹出窗口。 但是,如果我单击相同的URL,另一个弹出窗口将打开。现在有两个弹出窗口 有谁能帮我解决这个问题,因为我想把它限制在一个窗口内。 代码:- var isOpen=“false”; var newwindow=null; 函数调用(){ var link=document.getElementById('link').getAttribute('href'); 如果(等参线==“假”){ isOpen=“true”; 打开(链接,“空白”,“宽度=950,高

我只想在单击URL后打开一个弹出窗口。 但是,如果我单击相同的URL,另一个弹出窗口将打开。现在有两个弹出窗口

有谁能帮我解决这个问题,因为我想把它限制在一个窗口内。 代码:-


var isOpen=“false”;
var newwindow=null;
函数调用(){
var link=document.getElementById('link').getAttribute('href');
如果(等参线==“假”){
isOpen=“true”;
打开(链接,“空白”,“宽度=950,高度=650,滚动条=yes,可调整大小=yes”);
}否则{
newwindow.location.href=url;
newwindow.focus();
}
}




显示弹出窗口的功能/代码应进行一些更改,以标记弹出窗口已显示

例如:以下示例更改了链接的
href
,因此该函数不会再次被调用:

<html>
    <head>
        <script>
            function myfunction () {
                document.getElementById("someid").setAttribute("href", "javascript:console.log('No more alert!')");
                alert("Will be shown only once!");
            }
        </script>
    </head>
    <body>
        <a id="someid" href="javascript:myfunction()">Click me!</a>
    </body>
</html>

函数myfunction(){
document.getElementById(“someid”).setAttribute(“href”,“javascript:console.log('No more alert!'));
警报(“仅显示一次!”);
}

给出窗口的名称,如:

window.open(link,'testName','width=950,height=650,scrollbars=yes,resizable=yes');
它将在同一窗口中打开链接

<script >
var isOpen = "false";
var newwindow=null;
function call() {
    var link =document.getElementById('link').getAttribute('href');
    if (isOpen == "false") {
        isOpen = "true"; 
        window.open(link,'testName','width=950,height=650,scrollbars=yes,resizable=yes');
    } else {
        newwindow.location.href = url;
        newwindow.focus();
    }

}
</script>

var isOpen=“false”;
var newwindow=null;
函数调用(){
var link=document.getElementById('link').getAttribute('href');
如果(等参线==“假”){
isOpen=“true”;
打开(链接,'testName','width=950,height=650,scrollbars=yes,resizeable=yes');
}否则{
newwindow.location.href=url;
newwindow.focus();
}
}
希望能有帮助

这个适合我

var win;

$(document).on('click','#button', function(event) {
    url = 'https://example.com/';

    if (!win) { 
        win = window.open(url, '_blank');

    }else{
        win.focus(); 
    }   
}); 

“任何人都可以在这个问题上提供帮助”任何人都可以在不显示代码的情况下提供帮助。@ketan。检查代码您的代码行
执行两件事:首先调用
call()
函数,然后按照链接进行操作。call函数打开新窗口,但原始(初始)窗口会重新加载href地址。让我建议使用另一种方法,简单地将href定义为:
。感谢Ramón的工作。。。但问题是,我打开了链接1,然后再次单击链接3,但它没有打开。链接2和3只是在当前窗口上重新加载welcome.htm页面,变量将再次初始化。只要不重新加载窗口,就可以保留变量。如果你寻找一些浏览器间的Windows通信,你应该考虑其他工具作为cookies或者。我给我的代码可以检查它,看看它是否可以被固定。实际上它是弹出窗口。弹出窗口不应两次打开:由于其长度和内容,此答案被标记为低质量。您可能希望通过添加更多有关此选项如何回答OP问题的信息来改进它。
var win;

$(document).on('click','#button', function(event) {
    url = 'https://example.com/';

    if (!win) { 
        win = window.open(url, '_blank');

    }else{
        win.focus(); 
    }   
}); 
var newWindow = null;
goToUrl(url)
goToUrl = (url) => {
    if (!!!newWindow) {
        newWindow = window.open(url);
    } else {
        newWindow.focus()
        newWindow.location = url;
    }
}