jquery實現不被瀏覽器攔截的彈窗方式


最近做項目,需要用到彈窗,一開始直接使用的window.open()打開新窗口,毫無疑問,新窗口直接被瀏覽器攔截了。

於是稍微研究了一下瀏覽器的彈窗攔截策略,發現如果是用戶即時點擊而導致的彈窗,瀏覽器不會進行攔截,就像是a標簽的行為那樣,瀏覽器會認為這是用戶主動打開的窗口,因此不會將這個彈窗視為惡意彈窗進行攔截。

那么問題就簡單了,直接使用jQuery模擬超鏈接(<a>)被點擊,當按下一個按鈕時,想打開一個新的標簽頁,可以模擬鏈接被按下,然后打開鏈接。

但是在jQuery中,使用a.click(), a.trigger('click')等都不會引起鏈接默認事件被執行,這個和a標簽的點擊事件有關。我們每次點擊a標簽的鏈接,觸發的是a標簽包含的文字的原始點擊事件而進行的跳轉。

示例代碼如下所示:

$('#alert-success').append('<a href="http://www.baidu.com" target="_blank"><span id="test">test</span></a>');
$('#alert-success a #test').click();//這里點擊的是a標簽包含的文字
$('#alert-success a').remove();//刪去a標簽

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM