【问题标题】:window.open opened a popup instead of a new windowwindow.open 打开一个弹出窗口而不是一个新窗口
【发布时间】:2021-07-29 07:47:57
【问题描述】:

我知道这是一个新手问题,但我真的需要帮助。我创建了一个登陆页面,要求访问者输入密码才能访问目标页面。下面的代码可以正常工作,但它会打开一个窗口作为弹出窗口,因此 Chrome 会阻止它。我应该如何编辑下面的代码以防止这种情况发生?非常感谢!

<SCRIPT>
function passWord() {
var testV = 1;
var pass1 = prompt('Please Enter the Password','');
while (testV < 3) {
if (!pass1)
history.go(-1);
if (pass1.toLowerCase() == "letmein") {
alert('Access approved! Catalogue is now open.');
window.open('sandoz-ecatalog.html','_blank');
break;
}
testV+=1;
var pass1 =
prompt('Access Denied - Password Incorrect, Please Try Again.','Password');
}
if (pass1.toLowerCase()!="password" & testV ==3)
history.go(-1);
return "";
}
</SCRIPT>

【问题讨论】:

标签: javascript popupwindow


【解决方案1】:

打开一个新窗口而不阻止它是相对于浏览器用户而言的。您无法阻止用户阻止打开新窗口

由于弹出窗口阻止程序是在用户未调用的 window.open 上激活的,我建议您制作一个按钮或其他东西,以便与用户创建不会阻止新弹出窗口的交互

【讨论】:

    【解决方案2】:
    function passWord() {
    var testV = 1;
    var pass1 = prompt('Please Enter the Password','');
    while (testV < 3) {
    if (!pass1)
    history.go(-1);
    if (pass1.toLowerCase() == "letmein") {
    alert('Access approved! Catalogue is now open.');
      window.open("", "_blank",     "toolbar=yes,scrollbars=yes,resizable=yes,top=500,left=500,width=400,height=400");
    
    
    break;
    }
    testV+=1;
    var pass1 =
    prompt('Access Denied - Password Incorrect, Please Try Again.','Password');
    }
    if (pass1.toLowerCase()!="password" & testV ==3)
    history.go(-1);
    return "";
    }
    

    这对你有用

    【讨论】:

    • 它对我有用你想做的是在密码正确时打开一个弹出窗口吗??
    • 是的,但是输入正确的密码后,会提示另一个框“访问已批准”,然后用户需要单击确定。单击确定后,弹出窗口阻止程序再次阻止它。
    • 如果它阻止弹出窗口,那么它是您的浏览器的功能。检查您已禁用弹出窗口的设置,或者您可以在它被阻止时允许它javascript工作正常,没有问题,但如果您没有任何弹出消息,那么您可以在新标签中打开新页面
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-15
    • 1970-01-01
    相关资源
    最近更新 更多