用一个按钮登录

时间:2015-01-09 16:43:50

标签: javascript firefox login popup

我有一个login页面,如果密码正确,将打开实际页面(另一个网址)。

这是我运行的脚本:

<script>
 var dataGlobal;
 $('#in1').click(function(){
    var reply = prompt("Password", "");
    if(!reply) return; // user pressed cancel
    $.post('/~std10093/scheduler_pass.php', {elements: reply}, function(data) {
      if(data != "not")
        alert("Password ok, press the second button to enter scheduler");
      else
        alert("prits");
      dataGlobal = data;
    });
 });
 $('#in2').click(function(){
    window.open(dataGlobal);
 });
</script>

现在,用户必须单击第一个按钮,输入密码,然后单击另一个将打开新URL的按钮。我只想用一个按钮来做这个,有可能吗?

如果我修改上面的代码并将window.open(dataGlobal);移动到if(data != "not")的主体(如果密码正确,我们将进入的主体),firefox将阻止新页面加载,因为它会阻止弹出窗口。

enter image description here

在上图中,我们也可以看到我之前提到的两个按钮。


理想情况下,我希望将window.open()替换为不会触发防止弹出窗口的内容。


修改

我想为实际页面添加另一个网址。实际页面是来自here的调度程序,它是公共的,因此登录的URL也是公共的。但是,我希望调度程序的URL是私有的,这样我信任的人就可以在不登录的情况下访问它。

1 个答案:

答案 0 :(得分:2)

而不是创建一个弹出窗口,为什么不只使用当前窗口?

在哪种情况下改为:

 $('#in2').click(function(){
    window.location.href = dataGlobal;
 });

编辑: - 可以转到回调:

<script>
 var dataGlobal;
 $('#in1').click(function(){
    var reply = prompt("Password", "");
    if(!reply) return; // user pressed cancel
    $.post('/~std10093/scheduler_pass.php', {elements: reply}, function(data) {
      if(data != "not")
        window.location.href = data;
      else
        alert("prits");
    });
 });
</script>