我发现这个gist会阻止网页链接超出"独立模式"在iPhone上,但我想在某些类别的链接上禁用此功能。
每当存在一个模态时,此功能会破坏它并快速打开模态,然后重定向到href
。
代码:
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);
}
如何修改它以包含a
类,open, modal
不应该使用上述功能并且只保持模态打开?
答案 0 :(得分:1)
试试这个。
if(("standalone" in window.navigator) && window.navigator.standalone) {
var noddy, remotes = false;
document.addEventListener('click', function(event) {
noddy = event.target;
var className = noddy.className;
if(noddy.nodeName === "A"
&& (className.indexOf('open') != -1 || className.indexOf('modal') != -1)){
return;//Just return without doing anything
}
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);
}
如果您在页面或应用程序中使用jQuery
,请注意使用内置apis的jQuery,可以大大减少代码。