1. 程式人生 > >window.open(url)開啟連結被瀏覽器攔截解決方案

window.open(url)開啟連結被瀏覽器攔截解決方案

瀏覽器為了維護使用者安全和體驗,禁止在JS中直接使用window.open(url)來開啟新的連結(window.open(url,”_self”)改變當前的視窗是可以生效的)。下面採用幾種變通方法解決:

1.表單提交的方式

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 表單來模擬下載。

2.直接將開啟視窗操作放在按鈕/連結的onclick事件中

如:

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

3.延遲這個開啟操作

如:

setTimeout('window.open(url);', 500); // 延遲時間不能太短 否則也會被攔截

4.通過JS開啟新視窗會被攔截,換一種實現方式

var tempwindow=window.open('_blank'); // 先開啟頁面
tempwindow.location='http://www.baidu.com'; // 後更改頁面地址

相關推薦

window.open(url)開啟連結瀏覽器攔截解決方案

瀏覽器為了維護使用者安全和體驗,禁止在JS中直接使用window.open(url)來開啟新的連結(window.open(url,”_self”)改變當前的視窗是可以生效的)。下面採用幾種變通方

ajax非同步請求中使用window.open瀏覽器攔截解決方案

問題剖析:function click_fun(){ window.open("www.baidu.com");//能開啟 $.ajax({ 'url': '${pageContext.request.contextPath}/activity/sav

window.open() 某些情況會瀏覽器阻止彈出窗口及解決辦法

默認 多次 location body 使用 www 介紹 fin 代碼   window.open() 的作用是創建一個新的瀏覽器窗口用來打開相關的資源,這是一個原生的 Javascript API 接口。   有關 window.open() 的基本使用可以參考 moz

window.open() 某些情況會瀏覽器阻止彈出視窗

window.open() 的作用是建立一個新的瀏覽器視窗用來開啟相關的資源,這是一個原生的 Javascript API 介面。有關 window.open() 的基本使用可以參考 mozilla 提供的  API 文件:window.open 。大部分現代的瀏覽器(泛指

js新開窗口避免瀏覽器攔截解決方案

瀏覽器 oca cat 解決方案 bsp lse span 方案 return Ajax毀掉函數中,打開新窗口解決方案 var w = window.open(); $.post("GetHomToTestPaper", {homeworkName:hom

window.open開啟新視窗瀏覽器攔截的處理方法

window.open是javascript函式,該函式的作用是開啟一個新視窗或這改變原來的視窗,如果你直接在js中呼叫window.open()函式去開啟一個新視窗,瀏覽器會攔截你,那麼如何避免呢。 注意,只有直接使用js呼叫 window.open(url); 開啟新視窗時,才會被攔截,如果是改變原理額

window.open瀏覽器攔截解決方案

方案 attr fun click open target win element blog function newWin(url, id) { var a = document.createElement(‘a‘);

window.open方法瀏覽器攔截的處理方式

問題現象 當我們在一個 ajax 回撥中執行 window.open 方法時,新頁面會被瀏覽器攔截。 原因 在 Chrome 的安全機制裡,非使用者直接觸發的 window.open 方法,是會被攔截的。 處理 $('#jump-btn').on('click', funct

window.open()瀏覽器攔截問題

一、原因 瀏覽器為了維護使用者安全和體驗,在JS中直接使用window.open(url,"_blank")來開啟新的連結是會被攔截的,(window.open(url,”_self”)改變當前的視窗是可以生效的),通常專案需要在ajax非同步請求完成後來開啟新連結,下面提供幾種解決方案 二

window.open()瀏覽器攔截

近來在專案中,遇到這樣的操作:   在ajax請求的回撥函式中 需要使用window.open()開啟新頁面,但是等ajax請求成功之後,window.open()開啟新頁面總是被瀏覽器攔截,原因大概是,放在ajax回撥函式中的操作,被瀏覽器認為不是使用者主動觸發的事件,並

非同步請求後根據結果window.open方式開啟新頁面,瀏覽器攔截彈窗問題

專案中出現一個問題,要求根據從後臺非同步請求後的結果開啟新的標籤頁,發現使用window.location.href=”地址”,該方法沒有問題,但是使用window.open開啟新頁面的時候會無效。

ajax請求裡面呼叫window.open瀏覽器攔截(優化版)

眾所周知,ajax請求裡面呼叫window.open會被瀏覽器攔截方法有兩種解決辦法,但是經測驗例如ajax改為async:false同步請求還會出現一些問題(比如站點外網址被攔截);第一種解決辦法優化:該方法優點描述:比如ajax回撥函式失敗,瀏覽器預設開啟的空連結會自動關

vue 路由跳轉開啟新視窗(瀏覽器攔截)

今天做了一個功能是點選按鈕路由跳轉開啟新的視窗頁面 第一種方法 <router-link target="_blank" :to="{path:'/FundManger/FundProductMoney', query:{managerId:fundcode}}&

ajax操作window.open()瀏覽器攔截解決

其實都算不上解決   因為其實太easy了    開始的時候看了網上的很多    意思都是說在ajax前先開啟一個視窗   然後再給它賦值其實根本原因就是因為在ajax中彈視窗 &nbs

開啟新頁面瀏覽器攔截的問題

專案中,需求是先開啟彈窗完成資料校驗請求後,再開啟新的頁面,做表單資料的處理;程式碼完成後,彈出頁面的時候,總是被瀏覽器攔截,原因是瀏覽器的安全機制,防止非使用者操作彈出頁面,阻止廣告等非法頁面彈出,網上提供了一下幾種解決辦法:1. 使用window.open(url,"_b

點選連結開啟微信再跳轉到微信內部瀏覽器解決方案

瞭解了一下http://xyk.cmbchina.com/Latte/wx/20150520wkf?from=ISTA004&clientid= 招行的這個跳轉,發現後臺返回的這個資料{"returnCode":"0000","returnMessage":"succ

子視窗在用window.open()方法開啟後,如何關閉後重新整理父視窗

需求 在網站開發過程中,經常會有需要通過A頁面開啟B頁面,在B頁面操作完畢後,返回到A頁面並重新整理B頁面相關資訊。 解決方式 A頁面增加JavaScript公共變數進行全域性控制,通過啟動、停止監聽事件的方法監聽B頁面的工作狀態,根據B頁面的工作狀態做出對應事件響應。具

新視窗window.open() url不顯示引數,後面頁面可以接收引數 ——後面頁面為jsp

前臺js: var iUserID=document.actionForm.user_id.value; var iTID=document.actionForm.ts_id.value; var szUrl="/new_window.jsp"; //可寫可不寫 var s

java專案用window.open(url)後,url會自動加上專案全路徑問題解決

示例: 想要這種: http://188.188.2.49/Record/2013/09/02/10/20130902_100746_PYU.wav 但出現 http://localhost:809

window.open(URL,name,features,replace)方法用法

定義和用法 open() 方法用於開啟一個新的瀏覽器視窗或查詢一個已命名的視窗。 語法 window.open(URL,name,features,replace) 引數 描述 URL 一