摘要:眾所周知,請求里面調(diào)用會被瀏覽器攔截方法有兩種解決辦法,但是經(jīng)測驗例如改為同步請求還會出現(xiàn)一些問題比如站點外網(wǎng)址被攔截第一種解決辦法優(yōu)化該方法優(yōu)點描述比如回調(diào)函數(shù)失敗,瀏覽器默認(rèn)打開的空鏈接會自動關(guān)閉,用戶體驗比較好。
眾所周知,ajax請求里面調(diào)用window.open會被瀏覽器攔截方法有兩種解決辦法,但是經(jīng)測驗例如ajax改為async:false同步請求還會出現(xiàn)一些問題(比如站點外網(wǎng)址被攔截);
第一種解決辦法優(yōu)化:
該方法優(yōu)點描述:比如ajax回調(diào)函數(shù)失敗,瀏覽器默認(rèn)打開的空鏈接會自動關(guān)閉,用戶體驗比較好。
var newwin; $("#btn").click(function(){ newwim = window.open(); //此處調(diào)用ajax,異步即可: $.ajax({ type:"POST", url: ajaxurl, dataType : "json", data:parameter, beforeSend : function(){}, success:function(data) { if(data.TSR_CODE == "0"){ newwin.location.href = xxx;//xxx為后端返回的地址; }else{ alert(data.TSR_MSG); newwin.close();//此處為ajax失敗方法,自動關(guān)閉剛才會打開的頁面; } }, error:function(){ console.log("訪問出錯,請重試!"); }, complete:function(){} }); });
第二種解決辦法分析:
此方法測試過:比如后臺返回的是站外網(wǎng)址,谷歌瀏覽器、360瀏覽器等等會攔截請求,火狐、qq瀏覽器不會攔截,預(yù)測是瀏覽器自身對站外網(wǎng)址這種類型做了攔截,普通的網(wǎng)址不被攔截;
$("#btn").click(function(){ //此處調(diào)用ajax,異步即可: $.ajax({ type:"POST", url: ajaxurl, dataType : "json", async:false,//改為同步請求 data:parameter, beforeSend : function(){}, success:function(data) { if(data.TSR_CODE == "0"){ window.open(xxx); }else{ alert(data.TSR_MSG); } }, error:function(){ console.log("訪問出錯,請重試!"); }, complete:function(){} });
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/95188.html
摘要:使用包裝一下,也可以防止被瀏覽器攔截。注意這里的超時時間不能太短,否則也會被攔截。我們會遇到想要彈出一個窗口,可是卻是在事件執(zhí)行后,才去彈出來的,這時就會被瀏覽器攔截,我們可以通過下面的方法來避免先用打開一個窗口,然后修改地址。 最近公司開發(fā)的一個項目,平凡用到下載各種類型的文件,但是例如.txt,.jpg,.pdf格式的文件呢瀏覽器會在當(dāng)前窗口直接打開,影響用戶體驗,嘗試各種方案和百...
摘要:使用包裝一下,也可以防止被瀏覽器攔截。注意這里的超時時間不能太短,否則也會被攔截。我們會遇到想要彈出一個窗口,可是卻是在事件執(zhí)行后,才去彈出來的,這時就會被瀏覽器攔截,我們可以通過下面的方法來避免先用打開一個窗口,然后修改地址。 最近公司開發(fā)的一個項目,平凡用到下載各種類型的文件,但是例如.txt,.jpg,.pdf格式的文件呢瀏覽器會在當(dāng)前窗口直接打開,影響用戶體驗,嘗試各種方案和百...
摘要:使用包裝一下,也可以防止被瀏覽器攔截。注意這里的超時時間不能太短,否則也會被攔截。我們會遇到想要彈出一個窗口,可是卻是在事件執(zhí)行后,才去彈出來的,這時就會被瀏覽器攔截,我們可以通過下面的方法來避免先用打開一個窗口,然后修改地址。 最近公司開發(fā)的一個項目,平凡用到下載各種類型的文件,但是例如.txt,.jpg,.pdf格式的文件呢瀏覽器會在當(dāng)前窗口直接打開,影響用戶體驗,嘗試各種方案和百...
摘要:問題描述代碼中直接使用會被瀏覽器窗口攔截原因瀏覽器為了維護(hù)用戶安全和體驗,在中直接使用,來打開新的鏈接是會被攔截的。 問題描述: 代碼中直接使用window.open(//www.baidu.com, _blank);會被瀏覽器窗口攔截 原因瀏覽器為了維護(hù)用戶安全和體驗,在JS中直接使用window.open(url,_blank)來打開新的鏈接是會被攔截的。通常項目需要在ajax異步...
閱讀 1396·2023-04-25 16:45
閱讀 1932·2021-11-17 09:33
閱讀 2323·2021-09-27 14:04
閱讀 923·2019-08-30 15:44
閱讀 2644·2019-08-30 14:24
閱讀 3427·2019-08-30 13:59
閱讀 1701·2019-08-29 17:00
閱讀 899·2019-08-29 15:33