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

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

因而稍微研究了一下瀏覽器的彈窗攔截策略,發現若是是用戶即時點擊而致使的彈窗,瀏覽器不會進行攔截,就像是a標籤的行爲那樣,瀏覽器會認爲這是用戶主動打開的窗口,所以不會將這個彈窗視爲惡意彈窗進行攔截。app

那麼問題就簡單了,直接使用jQuery模擬超連接(<a>)被點擊,當按下一個按鈕時,想打開一個新的標籤頁,能夠模擬連接被按下,而後打開連接。spa

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

示例代碼以下所示:blog

$('#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標籤
相關文章
相關標籤/搜索