javascript實(shí)現(xiàn)阻止iOS APP中的鏈接打開Safari瀏覽器
上次根據(jù)網(wǎng)上的教程給自己的網(wǎng)站弄了一個(gè)Web APP,但是給用戶的感覺卻十分糟糕。
問題說明:
怎么了?原來(lái)是打開WEB APP后在主頁(yè)上隨意打開連接,就會(huì)自作主張地打開Safari瀏覽器。原來(lái)好好的偽裝和心情就全被破壞掉了。這該如何是好?原來(lái)解決方法十分簡(jiǎn)單。僅僅加入這些代碼就好了。實(shí)驗(yàn)測(cè)試在本人的 iPhone (iOS 7.1)和iPod (iOS 6.1.4)上測(cè)試通過,根據(jù)原作者的敘述,最新的 iOS 7.0.4(iPhone 與 iPad)測(cè)試通過,代碼應(yīng)該兼容性不錯(cuò),在這里分享:
問題解決:
<script type=“text/javascript”>
//iOS Web APP中點(diǎn)擊鏈接跳轉(zhuǎn)到Safari 瀏覽器新標(biāo)簽頁(yè)的問題
if ((“standalone” in window.navigator) && window.navigator.standalone) {
var noddy, remotes = false;
document.addEventListener(‘click',
function(event) {
noddy = event.target;
while (noddy.nodeName !== “A” && noddy.nodeName !== “HTML”) {
noddy = noddy.parentNode;
}
if (‘href' in noddy && noddy.href.indexOf(‘http') !== -1 && (noddy.href.indexOf(document.location.host) !== -1 || remotes)) {
event.preventDefault();
document.location.href = noddy.href;
}
},
false);
}
</script>
建議將代碼放到/head標(biāo)簽前,當(dāng)然,另外存為一個(gè)js 文件引用也是可以的。
相關(guān)文章
Highcharts使用簡(jiǎn)例及異步動(dòng)態(tài)讀取數(shù)據(jù)
Highcharts 是一個(gè)用純JavaScript編寫的一個(gè)圖表庫(kù), 能夠很簡(jiǎn)單便捷的在web網(wǎng)站或是web應(yīng)用程序添加有交互性的圖表,并且免費(fèi)提供給個(gè)人學(xué)習(xí)、個(gè)人網(wǎng)站和非商業(yè)用途使用,通過本文給大家介紹Highcharts使用簡(jiǎn)例及異步動(dòng)態(tài)讀取數(shù)據(jù)的相關(guān)知識(shí),感興趣的朋友一起學(xué)習(xí)吧2015-12-12
js實(shí)現(xiàn)鍵盤操作實(shí)現(xiàn)div的移動(dòng)或改變的原理及代碼
實(shí)現(xiàn)鍵盤操作實(shí)現(xiàn)div的移動(dòng),最關(guān)鍵的一點(diǎn):獲取div對(duì)象,下面有個(gè)不錯(cuò)的示例,大家可以參考下2014-06-06
JS簡(jiǎn)單實(shí)現(xiàn)動(dòng)畫彈出層效果
本文給大家介紹的是是一款javascript彈出層特效,支持點(diǎn)擊觸發(fā)js彈出層,滑過觸發(fā)js彈出層,帶動(dòng)畫效果js彈出層,可自定義函數(shù)回調(diào)js彈出層。2015-05-05
JavaScript中async/await的高級(jí)用法小結(jié)
JavaScript的異步編程已經(jīng)從回調(diào)(Callback)演進(jìn)到Promise,再到如今廣泛使用的async/await語(yǔ)法,本文為大家整理了7個(gè)async/await高級(jí)用法,希望對(duì)大家有所幫助2023-12-12
8 行 Node.js 代碼實(shí)現(xiàn)代理服務(wù)器
JavaScript 前后端通吃,在全棧開發(fā)領(lǐng)域具有獨(dú)特的優(yōu)勢(shì)。今天就來(lái)看看作為服務(wù)端語(yǔ)言的 JavaScript,完成一個(gè)簡(jiǎn)單的代理服務(wù)器功能是多么容易。2016-12-12

