导航到新url时,Javascript在Safari中不起作用
Javascript not working in Safari when navigating to a new url
当进行账单支付时,我会显示一个静态引导弹出窗口,告诉用户等待。用户单击一个调用js函数的按钮来显示弹出窗口,然后将用户重定向到在服务器端运行计费的url。它适用于除Safari之外的所有浏览器。当我点击Safari中的按钮时,弹出窗口不会出现,它只是导航到计费页面。我注意到如果我删除导航行(location.replace('/billingpage/pay/');)弹出窗口将在safari中正确显示。如果javascript中有导航,safari似乎不会显示弹出窗口。
我还尝试将导航放在另一个函数中,并在超时后调用它,如下所示:window.setTimeout(navigation(),1000);但这也没有奏效。
function pay_now() {
document.getElementById("paynow_btn").disabled=true;
document.getElementById("paynow_btn").style.opacity = 0.25;
var wait_title = "Please wait while the transaction is processed...";
var wait_message = "<br/><br/><br/><br/> ";
document.getElementById("staticModalLabel").innerHTML = wait_title;
document.getElementById("staticModalBody").innerHTML = wait_message;
var spinner = new Spinner().spin();
document.getElementById("staticModalBody").appendChild(spinner.el);
$('#staticPopupModal').modal({
backdrop: 'static',
keyboard: false
});
location.replace('/billingpage/pay/');
}
<a href="javascript:pay_now();" id="paynow_btn" class="btn btn-green">PAY</a>
这难道不是每个javascript进程的预期行为吗?无论如何,在你的情况下,我肯定会推迟使用jquery并承诺。这是我用jqueryui制作模式对话框的小提琴。
基本上它在代码中是这样的。
var dfd = $.Deferred();
$("#dialog-confirm").dialog({
resizable: false,
height: 140,
modal: true,
buttons: {
"go to billing page": function () {
$(this).dialog("close");
dfd.resolve();
},
Cancel: function () {
$(this).dialog("close");
dfd.reject();
}
}
});
$.when(dfd).then(
function () {
alert('go to billing page');
},
function () {
alert('nope');
});
相关文章:
- window.open(url).print()在Safari中不起作用
- 复制到剪贴板在safari-angularjs中不起作用
- Javascript Cookies在Safari中不起作用
- 带有Safari的Javascript;不起作用——所有其他浏览器都起作用
- 导航到新url时,Javascript在Safari中不起作用
- JS代码使IE9和Safari冻结,在Opera中不起作用
- html视频javascript播放方法在移动Safari中不起作用
- 为什么这个排序功能在 Safari 中不起作用
- $.getJSON 在 Chrome 和 Safari 中不起作用
- window.dispatchEvent 在 Firefox、Safari 或 IE 中不起作用
- 滚动到顶部按钮在 chrome 或 safari 中不起作用
- jQuery .play() 在移动 Safari 上不起作用
- jQuery .focus() 在 Safari(桌面)的搜索字段中不起作用
- HTML5<视频>元素在Firefox、Opera和Safari中不起作用
- 为什么find('input:focus')在safari中不起作用
- OfflineAudioContext.startRendering()基于承诺的函数在safari中不起作用
- ng模式验证在safari中不起作用
- 图像预览在Safari中不起作用
- 脚本在safari中不起作用
- CreateContextualFragment在safari中不起作用