使用js跳轉(zhuǎn)的過程當(dāng)中遇到了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.
在新打開的窗口當(dāng)中讀取網(wǎng)頁內(nèi)容。
這樣就可以打開新窗口,并且不被chrome攔截了。