0

Webページからのリンクが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);
}

ページまたはアプリケーションで使用している場合の補足として、jQueryAPI に組み込まれた jQuery を使用することで、コードを大幅に削減できます。

于 2012-06-05T14:06:36.263 に答える