我正在尝试打开一个新标签/弹出窗口,当用户按下确定或取消时,但如果用户打开了弹出窗口阻止程序则无法正常工作。
var openAlert = window.confirm("Click ok if you want to go to Google.com");
if (openAlert) { // if they clicked "ok"
window.open(
'http://google.com',
'_blank'
);
} else { // if they clicked "cancel"
window.open(
'http://example.com/example.html',
'_blank'
);
}
有没有人有办法绕过那个?
答案 0 :(得分:1)
使用target="_blank"
作为您点击的链接的目标。您可以将链接设置为按钮。使用Javascript只显示警告并阻止点击操作。
答案 1 :(得分:0)
使用JS创建的链接,然后按照: var body = $(document.body);
function promptFlow() {
// SO/jsbin/etc don't allow alert/prompt/confirm/etc, so we use a quick proxy:
var div = $("<div><p>want to go to google</p><button>OK</button></div>");
var openAlert = false;
div.find("button").click(function() {
div.remove();
openAlert = true;
// your code would be the following:
if (openAlert) {
var a = $("<a>").attr({
href: 'https://google.com',
target: '_blank'
}).appendTo(body);
// click as HTML element, not jquery element
a[0].click();
// then, remove it.
a.remove();
}
});
body.append(div);
}
$("button").click(promptFlow);
由于SO如何嵌入代码段,因此不会像片段一样工作,但http://jsbin.com/vipolegefe/edit?html,js,output显示此工作正常。