摘要:目前就不能避免被攔截了,只能通知用戶,讓用戶去給被攔截的頁(yè)面新添加信任。判斷跳轉(zhuǎn)頁(yè)面是否被攔截了。如果已經(jīng)攔截,就給他用戶提示提示的方式可以是引導(dǎo)用戶去解決被攔截問題添加信任您的支付界面窗口已經(jīng)被瀏覽器攔截
知識(shí)簡(jiǎn)說
window.open 命令在用戶操作(trusted events)時(shí), 才會(huì)正常的打開應(yīng)該頁(yè)面而不會(huì)被瀏覽器攔截
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í)候,我們是需要在做異步請(qǐng)求回來時(shí)才能跳轉(zhuǎn),這時(shí),如果等待到請(qǐng)求返回再去window.open 會(huì)被瀏覽器攔截。
解決方案
場(chǎng)景1,如果是在發(fā)送請(qǐng)求后等待請(qǐng)求回來,不管請(qǐng)求結(jié)果正確與否都要跳轉(zhuǎn)頁(yè)面的話
需要在發(fā)送請(qǐng)求前先var A = window.open() 一個(gè)新窗口。然后等請(qǐng)求結(jié)束了,在給這個(gè)窗口附上URL
function clickAction() { var openWind = window.open() ajaxAgent("POST", "URL", params).then((resutl)=> { opneWind.loaction.href = "jumpURL" }) }
- "注意" 這里會(huì)有個(gè)問題,如果異步請(qǐng)求的時(shí)間過長(zhǎng),會(huì)讓用戶感覺有個(gè)空白窗口在哪里晾著O__O …。
場(chǎng)景2,如果是想發(fā)送請(qǐng)求后等待請(qǐng)求回來,通過請(qǐng)求結(jié)果來決定是否要跳轉(zhuǎn),這時(shí),就沒發(fā)通過執(zhí)行異步請(qǐng)求之前先打開個(gè)新窗口的方法來解決了,因?yàn)橛锌赡軙?huì)放回結(jié)構(gòu)是失敗,不希望跳轉(zhuǎn),這時(shí),在去吧空窗口關(guān)閉,會(huì)給用戶帶來困惑。
目前就不能避免被攔截了,只能通知用戶,讓用戶去給被攔截的頁(yè)面新添加信任。
var openNewWindow = window.open(url); // 判斷跳轉(zhuǎn)頁(yè)面是否被攔截了。 // 如果已經(jīng)攔截,就給他用戶提示 // 提示的方式可以是引導(dǎo)用戶去解決被攔截問題(添加信任) if (!openNewWindow || openNewWindow.closed || typeof openNewWindow.closed === "undefined") { alert("您的支付界面窗口已經(jīng)被瀏覽器攔截") }
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/50296.html
摘要:目前就不能避免被攔截了,只能通知用戶,讓用戶去給被攔截的頁(yè)面新添加信任。判斷跳轉(zhuǎn)頁(yè)面是否被攔截了。如果已經(jīng)攔截,就給他用戶提示提示的方式可以是引導(dǎo)用戶去解決被攔截問題添加信任您的支付界面窗口已經(jīng)被瀏覽器攔截 知識(shí)簡(jiǎn)說 window.open 命令在用戶操作(trusted events)時(shí), 才會(huì)正常的打開應(yīng)該頁(yè)面而不會(huì)被瀏覽器攔截 ps : 什么是 trusted events tr...
摘要:?jiǎn)栴}描述代碼中直接使用會(huì)被瀏覽器窗口攔截原因?yàn)g覽器為了維護(hù)用戶安全和體驗(yàn),在中直接使用,來打開新的鏈接是會(huì)被攔截的。 問題描述: 代碼中直接使用window.open(//www.baidu.com, _blank);會(huì)被瀏覽器窗口攔截 原因?yàn)g覽器為了維護(hù)用戶安全和體驗(yàn),在JS中直接使用window.open(url,_blank)來打開新的鏈接是會(huì)被攔截的。通常項(xiàng)目需要在ajax異步...
摘要:?jiǎn)栴}描述代碼中直接使用會(huì)被瀏覽器窗口攔截原因?yàn)g覽器為了維護(hù)用戶安全和體驗(yàn),在中直接使用,來打開新的鏈接是會(huì)被攔截的。 問題描述: 代碼中直接使用window.open(//www.baidu.com, _blank);會(huì)被瀏覽器窗口攔截 原因?yàn)g覽器為了維護(hù)用戶安全和體驗(yàn),在JS中直接使用window.open(url,_blank)來打開新的鏈接是會(huì)被攔截的。通常項(xiàng)目需要在ajax異步...
摘要:使用包裝一下,也可以防止被瀏覽器攔截。注意這里的超時(shí)時(shí)間不能太短,否則也會(huì)被攔截。我們會(huì)遇到想要彈出一個(gè)窗口,可是卻是在事件執(zhí)行后,才去彈出來的,這時(shí)就會(huì)被瀏覽器攔截,我們可以通過下面的方法來避免先用打開一個(gè)窗口,然后修改地址。 最近公司開發(fā)的一個(gè)項(xiàng)目,平凡用到下載各種類型的文件,但是例如.txt,.jpg,.pdf格式的文件呢瀏覽器會(huì)在當(dāng)前窗口直接打開,影響用戶體驗(yàn),嘗試各種方案和百...
閱讀 3304·2021-11-22 12:07
閱讀 1971·2021-10-12 10:11
閱讀 1099·2019-08-30 15:44
閱讀 3004·2019-08-30 12:45
閱讀 2303·2019-08-29 16:41
閱讀 1688·2019-08-29 16:35
閱讀 2718·2019-08-29 12:57
閱讀 1214·2019-08-26 13:51