瀏覽器彈出窗口被攔截解決辦法


看過很多解決這個辦法的文章,但是對於ajax請求的彈出窗都沒什么用,直到看到了這邊文章才豁然開朗,其實是很簡單的,下面是復制過來的文章。

window.open是javascript函數,該函數的作用是打開一個新窗口或這改變原來的窗口,不過一般用來的是打開新窗口,因為修改原來的網頁地址,可以使用window.location,可以重定向網頁地址,使網頁跳轉到另一個頁面。

但是一般情況下,如果直接在js中調用window.open()函數去打開一個新窗口,瀏覽器會對彈出的窗口進行攔截,因為瀏覽器會把該窗口認為是彈出廣告等用戶不想得到的窗體,如果不想讓瀏覽器攔截,解決的方法是把window.open()函數改為由用戶主動點擊時觸發,這樣瀏覽器就認為是用戶想訪問這個頁面,而不是直接彈出給用戶。

所以常用的方法就是在超鏈接里加入onclick事件,如

1
< a  href="javascript:void(0)" onclick="window.open()"></ a >

  

這樣用戶點擊這個超鏈接,瀏覽器會認為它是打開一個新的鏈接,所以就不會攔截。

可是有時候會遇到想要彈出一個窗口,可是卻是在onckick事件執行后,才去彈出來的,比如使用了$.JSON,點擊獲取數據后,再跳轉到新頁面,這時就會被瀏覽器攔截,我們可以通過下面的方法來避免,就是先用window.open打開一個窗口,然后修改該窗口地址。

如在$.JSON前面定義變量打開一個窗口,代碼如下:

var tempwindow=window.open();

 

然后對$.JSON返回的地址使用以下代碼使這個窗口跳轉到指定網址,這樣就會呈現彈出新窗口的效果了,而且不會被瀏覽器攔截。

1
tempwindow.location='/jump/new';

  

把上面跳轉的地址改為$.JSON返回的變量或自己想要跳轉到的網頁。

轉自:http://www.tuicool.com/articles/qaYzmey

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM