使用js跳轉(zhuǎn)的過程當中遇到了window.open()被chrome內(nèi)核的瀏覽器攔截的問題巢墅。
原因分析
出于安全考慮chrome瀏覽器會攔截掉非用戶操作的行為,比如直接使用js跳轉(zhuǎn)鏈接借宵,這個行為不是用戶的直接行為就會被chrome瀏覽器屏蔽掉。
比如我有一個click的事件
click(){
其他操作~~~
window.open()
}
window.open()不是第一個執(zhí)行的方法薇组,它就會被屏蔽掉趁怔。
解決方案
解決方案很簡單,執(zhí)行函數(shù)的時候蚕捉,比如click奏篙,讓window.open()先執(zhí)行,打開一個空的窗口
var winHandler = window.open('', '_blank')
然后再執(zhí)行
winHandler.location.
在新打開的窗口當中讀取網(wǎng)頁內(nèi)容迫淹。
這樣就可以打開新窗口秘通,并且不被chrome攔截了。