我有一个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将阻止新页面加载,因为它会阻止弹出窗口。
在上图中,我们也可以看到我之前提到的两个按钮。
理想情况下,我希望将window.open()
替换为不会触发防止弹出窗口的内容。
修改
我想为实际页面添加另一个网址。实际页面是来自here的调度程序,它是公共的,因此登录的URL也是公共的。但是,我希望调度程序的URL是私有的,这样我信任的人就可以在不登录的情况下访问它。
答案 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>