【问题标题】:How to detect if stop loading button pressed in browser via javascript?如何检测是否通过javascript在浏览器中按下停止加载按钮?
【发布时间】:2016-12-04 23:03:53
【问题描述】:

如何检测是否通过javascript在浏览器中按下停止加载按钮或页面是否仍在加载?

【问题讨论】:

  • 我不认为你可以。 JS 可以到达窗口而不是窗口之外。如果资源不可用,您可以检查资源并进行相应处理
  • @Rajesh 0 怎么做?如果资源哪个测试本身没有加载?
  • @Rayon 没错,但如果用户有意识地杀死你的进程,我不确定是否有任何东西可以保证处理任何东西。
  • @Rajesh – 同意你的观点......不知道为什么 OP 需要这个......
  • 您无法检测到是否按下了“停止加载按钮”,但您可以检测到内容停止加载,假设执行此操作的代码已到达浏览器。为什么你需要知道这一点,当检测到这一点时你会做什么?

标签: javascript jquery


【解决方案1】:

假设脚本到达浏览器并且在按下“停止加载按钮”时不会停止执行,这可能是一个可行的选择

使用它仍然可以有未加载的资源,但会给你一个好的开始。

<!DOCTYPE html>
<html>

<head>
  <meta http-equiv='content-type' content='text/html; charset=UTF-8' />
  <script type='text/javascript'>
    
    var DomLoaded = {
      done: false,
      onload: [],
      loaded: function() {
        if (DomLoaded.done) return;
        DomLoaded.done = true;
        if (document.removeEventListener) {
          document.removeEventListener('DOMContentLoaded', DomLoaded.loaded, false);
        }
        for (i = 0; i < DomLoaded.onload.length; i++) DomLoaded.onload[i]();
      },
      load: function(fireThis) {
        this.onload.push(fireThis);
        if (document.addEventListener) {
          document.addEventListener('DOMContentLoaded', DomLoaded.loaded, false);
        } else {
          /*IE<=8*/
          if (/MSIE/i.test(navigator.userAgent) && !window.opera) {
            (function() {
              try {
                document.body.doScroll('up');
                return DomLoaded.loaded();
              } catch (e) {}
              if (/loaded|complete/.test(document.readyState)) return DomLoaded.loaded();
              if (!DomLoaded.done) setTimeout(arguments.callee, 10);
            })();
          }
        }
        /* fallback */
        window.onload = DomLoaded.loaded;
      }
    };

    DomLoaded.load(function() {
      var d = document;
      if (d.getElementsById('loaded-checker')) {
        // loaded

      } else {
        // not loaded

      }
    });
  </script>
  <link rel='stylesheet' type='text/css' href='/css/style.css' />
  <script src="/js/script.js"></script>
</head>

<body>


  <div class="main-header"></div>
  <div class="main-content"></div>
  <div class="main-footer"></div>

  <div id="loaded-checker"></div>

</body>

</html>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-12-22
    • 2016-10-22
    • 2021-07-26
    • 1970-01-01
    • 2018-01-10
    相关资源
    最近更新 更多