一键登录

Login with one button

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

这是我的脚本 运行:

<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 将阻止新的页面无法加载,因为它会阻止 pop-up windows.

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


理想情况下,我想用不会触发 pop-up window.

预防的东西替换 window.open()

编辑

我想为实际页面添加另一个 url。实际页面是来自 here 的调度程序,即 public,因此登录的 url 也是 public。但是,我希望调度程序的 url 是私有的,以便我信任的人无需登录即可访问它。

与其创建弹出窗口,不如直接使用当前 window?

在这种情况下更改为:

 $('#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>