解決彈出的窗口會被瀏覽器阻止的問題
阿新 • • 發佈:2019-04-19
syn eww 如果 bsp als 返回結果 color new com
常用的打開新窗口的方式
1、window.open()
2、用a標簽的target="_blank"
在模板中插入一個a標簽,然後javascript去觸發a鏈接的click,實現跳轉。(該方法在jQuery跟js中有坑...)
<a href="http://wuliv.com" id="openNew"></a> $(‘#openNew‘)[0].click() document.getElementById(‘openNew‘).click()
$("#openNew")得到的是一個jquery的對象,jquery本身對該對象的一些屬性進行了封裝,所以會導致click失效;而使用js對象 document.getElementById("a") 則不會存在該問題
onclick()也可以觸發事件,但是onclick跟click不同;
onclick觸發的是方法,而click先觸發按鈕的點擊事件,再觸發方法。
如果該對象沒有綁定onclick方法則無法被觸發,而click沒有綁定方法也可以觸發。
原因:當瀏覽器檢測到非用戶操作產生的新彈出窗口,則會對其進行阻止。因為瀏覽器認為這不是用戶希望看到的頁面
結果:當點擊事件1s之後再自動觸發這個跳轉事件,瀏覽器會攔截
解決方法:
1、ajax請求設置成同步的方式 async: false
2、window.open()
請求時先打開一個空頁面 var newWindow = window.open(); 請求返回結果之後 newWindow.location.href= fileUrl
解決彈出的窗口會被瀏覽器阻止的問題