0

我发现这个要点确实可以防止网页链接超出 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不应该使用上述功能而只保持模式打开?

4

1 回答 1

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在页面或应用程序中使用,那么您的代码可以通过使用 jQuery 内置 api 大大减少。

于 2012-06-05T14:06:36.263 回答