日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

js打开新窗口并且不被拦截

發布時間:2024/1/8 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 js打开新窗口并且不被拦截 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

js打開新窗口并且不被攔截


window.open是javascript函數,該函數的作用是打開一個新窗口或這改變原來的窗口,如果你直接在js中調用window.open()函數去打開一個新窗口,瀏覽器會攔截你,那么如何避免呢。

注意,只有直接使用js調用 window.open(url); 打開新窗口時,才會被攔截,如果是改變原理額窗口:window.open(url,‘_self‘); 則不會被攔截。

那么 js調用 window.open(url); 打開新窗口,如何才能不會瀏覽器攔截呢?

瀏覽器會攔截你,是認為你將彈出廣告等用戶不想得到的窗體,所以如果不想讓瀏覽器攔截你,你可以將這個函數改為用戶點擊時觸發,這樣瀏覽器就認為是用戶想訪問這個頁面,而不是你直接彈出給用戶。


0.最好的解決辦法

var form = document.createElement(‘form‘);form.action = ‘www.baidu.com?id=1‘;form.target = ‘_blank‘;form.method = ‘POST‘;document.body.appendChild(form);form.submit();

這種方式,如果需要傳遞參數時,需要使用 POST 方法, 默認的get方法, 無法傳遞參數。也就是新頁面的url中沒有參數部分。

另外,Ajax下載文件時也是用form 表單來模擬下載。

1.onclick
常用的方法就是在超鏈接里加入onclick事件,如這樣用戶點擊這個超鏈接,瀏覽器會認為它是打開一個新的鏈接,所以就不會攔 截。

2.setTimeout

setTimeout(‘window.open(url);‘, 500);

使用 setTimeout 包裝一下,也可以防止被瀏覽器攔截。注意這里的超時時間不能太短,否則也會被攔截。

3.location
可是有時候我們會遇到想要彈出一個窗口,可是卻是在onckick事件執行后,才去彈出來的,這時就會被瀏覽器攔截,我們可以通過下面的方法來避免,就是 先用window.open打開一個窗口,然后修改地址。如

var tempwindow=window.open(‘_blank‘); //打開一個窗口,然后用tempwindow.location=‘http://www.baidu.com‘; // 使這個窗口跳轉到百度,這樣就會呈現彈出百度窗口的效果了。

https://www.cnblogs.com/digdeep/p/4590337.html

總結

以上是生活随笔為你收集整理的js打开新窗口并且不被拦截的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。