如何在这个JS警报中绕过弹出窗口阻止程序?

时间:2015-11-29 16:05:06

标签: javascript jquery

我正在尝试打开一个新标签/弹出窗口,当用户按下确定或取消时,但如果用户打开了弹出窗口阻止程序则无法正常工作。

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'
    );
}

有没有人有办法绕过那个?

2 个答案:

答案 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显示此工作正常。