摘要:目前就不能避免被攔截了,只能通知用戶,讓用戶去給被攔截的頁面新添加信任。判斷跳轉(zhuǎn)頁面是否被攔截了。如果已經(jīng)攔截,就給他用戶提示提示的方式可以是引導(dǎo)用戶去解決被攔截問題添加信任您的支付界面窗口已經(jīng)被瀏覽器攔截
知識簡說
window.open 命令在用戶操作(trusted events)時(shí), 才會正常的打開應(yīng)該頁面而不會被瀏覽器攔截
ps : 什么是 trusted events
闡述問題trusted events is evnet.isTrusted is true. The isTrusted read-only property of the Event interface is a boolean that is true when the event was generated by a user action, and false when the event was created or modified by a script or dispatched via dispatchEvent.
很多時(shí)候,我們是需要在做異步請求回來時(shí)才能跳轉(zhuǎn),這時(shí),如果等待到請求返回再去window.open 會被瀏覽器攔截。
解決方案
場景1,如果是在發(fā)送請求后等待請求回來,不管請求結(jié)果正確與否都要跳轉(zhuǎn)頁面的話
需要在發(fā)送請求前先var A = window.open() 一個(gè)新窗口。然后等請求結(jié)束了,在給這個(gè)窗口附上URL
function clickAction() { var openWind = window.open() ajaxAgent("POST", "URL", params).then((resutl)=> { opneWind.loaction.href = "jumpURL" }) }
- "注意" 這里會有個(gè)問題,如果異步請求的時(shí)間過長,會讓用戶感覺有個(gè)空白窗口在哪里晾著O__O …。
場景2,如果是想發(fā)送請求后等待請求回來,通過請求結(jié)果來決定是否要跳轉(zhuǎn),這時(shí),就沒發(fā)通過執(zhí)行異步請求之前先打開個(gè)新窗口的方法來解決了,因?yàn)橛锌赡軙呕亟Y(jié)構(gòu)是失敗,不希望跳轉(zhuǎn),這時(shí),在去吧空窗口關(guān)閉,會給用戶帶來困惑。
目前就不能避免被攔截了,只能通知用戶,讓用戶去給被攔截的頁面新添加信任。
var openNewWindow = window.open(url); // 判斷跳轉(zhuǎn)頁面是否被攔截了。 // 如果已經(jīng)攔截,就給他用戶提示 // 提示的方式可以是引導(dǎo)用戶去解決被攔截問題(添加信任) if (!openNewWindow || openNewWindow.closed || typeof openNewWindow.closed === "undefined") { alert("您的支付界面窗口已經(jīng)被瀏覽器攔截") }
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/86488.html
摘要:目前就不能避免被攔截了,只能通知用戶,讓用戶去給被攔截的頁面新添加信任。判斷跳轉(zhuǎn)頁面是否被攔截了。如果已經(jīng)攔截,就給他用戶提示提示的方式可以是引導(dǎo)用戶去解決被攔截問題添加信任您的支付界面窗口已經(jīng)被瀏覽器攔截 知識簡說 window.open 命令在用戶操作(trusted events)時(shí), 才會正常的打開應(yīng)該頁面而不會被瀏覽器攔截 ps : 什么是 trusted events tr...
摘要:問題描述代碼中直接使用會被瀏覽器窗口攔截原因?yàn)g覽器為了維護(hù)用戶安全和體驗(yàn),在中直接使用,來打開新的鏈接是會被攔截的。 問題描述: 代碼中直接使用window.open(//www.baidu.com, _blank);會被瀏覽器窗口攔截 原因?yàn)g覽器為了維護(hù)用戶安全和體驗(yàn),在JS中直接使用window.open(url,_blank)來打開新的鏈接是會被攔截的。通常項(xiàng)目需要在ajax異步...
摘要:問題描述代碼中直接使用會被瀏覽器窗口攔截原因?yàn)g覽器為了維護(hù)用戶安全和體驗(yàn),在中直接使用,來打開新的鏈接是會被攔截的。 問題描述: 代碼中直接使用window.open(//www.baidu.com, _blank);會被瀏覽器窗口攔截 原因?yàn)g覽器為了維護(hù)用戶安全和體驗(yàn),在JS中直接使用window.open(url,_blank)來打開新的鏈接是會被攔截的。通常項(xiàng)目需要在ajax異步...
摘要:使用包裝一下,也可以防止被瀏覽器攔截。注意這里的超時(shí)時(shí)間不能太短,否則也會被攔截。我們會遇到想要彈出一個(gè)窗口,可是卻是在事件執(zhí)行后,才去彈出來的,這時(shí)就會被瀏覽器攔截,我們可以通過下面的方法來避免先用打開一個(gè)窗口,然后修改地址。 最近公司開發(fā)的一個(gè)項(xiàng)目,平凡用到下載各種類型的文件,但是例如.txt,.jpg,.pdf格式的文件呢瀏覽器會在當(dāng)前窗口直接打開,影響用戶體驗(yàn),嘗試各種方案和百...
閱讀 4221·2021-11-22 09:34
閱讀 1650·2021-11-04 16:10
閱讀 1824·2021-10-11 10:59
閱讀 3347·2019-08-30 15:44
閱讀 2127·2019-08-30 13:17
閱讀 3565·2019-08-30 11:05
閱讀 821·2019-08-29 14:02
閱讀 2697·2019-08-26 13:34