怎么打開關(guān)閉攔截入口:
https://jingyan.baidu.com/article/466506580d9828f549e5f8d1.html
也可以設(shè)置有些網(wǎng)站攔截,部分網(wǎng)站不攔截

preventSetup.png
為什么會出現(xiàn)這種情況:
當(dāng)瀏覽器檢測到非用戶操作產(chǎn)生的新彈出窗口,則會對其進(jìn)行阻止。因為瀏覽器認(rèn)為這可能是一個廣告,不是一個用戶希望看到的頁面。
而非用戶操作最常見的case就是異步調(diào)用(事件,請求,setTimeout等)
谷歌+百度到的各種解決方案:
方案一:
let newwindow = window.open('_blank');
newwindow.location = url;
中間有空白頁,需要額外解決。
方案2:a標(biāo)簽,form表單
方案3:利用ajax,設(shè)置異步請求變成同步請求,即async:false
試了上面幾個,都沒有好的解決方案。
最終解決方案:
采用參考鏈接解決了方案:
window.open('_blank')要在異步調(diào)用之前,然后拿返回的window對象去w去w.location.href
這樣雖然解決了問題,但是和產(chǎn)品的初始需求有出入,產(chǎn)品的需求是在請求成功才打開跳轉(zhuǎn)淘寶頁面,但是我在未請求成功的時候(點擊的時候就先打開了一個空白頁面)
屁顛屁顛去找產(chǎn)品協(xié)商~~
參考鏈接:https://www.weipxiu.com/1193.html
擴展:
之前也遇到過一個需要模擬點擊的情況,當(dāng)時加了這句話,這句話時為了取消離開當(dāng)前頁面時候的提示語:
模擬a和form標(biāo)簽 取消$(window).off('beforeunload');事件綁定