【问题标题】:Stop page load at specified time在指定时间停止页面加载
【发布时间】:2015-02-24 03:00:33
【问题描述】:

我正在尝试调试在页面加载的前 0.5 到 1 秒内加载的元素。之后它就完全消失了;我想知道是否有任何方法可以在页面加载时停止页面,无论是使用脚本还是模拟器,以便我可以使用开发人员工具追踪此元素。

感谢您的指点!

【问题讨论】:

  • 您是否尝试过使用 Google 开发人员工具或 Mozilla firebug 调试 javascript?
  • 是的,我有 - 任何脚本都没有错误。这很简单,但在我抓住选择器并追踪它之前它就消失了
  • 您可以在有问题的元素之后立即尝试内联 HTML Javascript,并在此处设置调试器断点。
  • 在 DOM 检查器中设置 DOM 修改断点。
  • @jdphenix 好吧,标记中没有违规元素,否则我会删除它(哈哈)它是从某个地方生成的 > 然后推送到页面上。

标签: javascript jquery qa


【解决方案1】:

您可以调用window.stop() 来停止窗口加载,如果这是您正在寻找的。

听起来,通过设置一些断点而不是手动插入停止语句,使用浏览器 javascript 调试器暂停脚本执行会更容易。

【讨论】:

  • 我可以让页面加载到某个点吗?说,3 秒,然后按原样停止?
  • @Nooneknows 我认为在文档顶部添加类似<script>setTimeout(window.stop, 300);</script> 的内容应该可以。
【解决方案2】:

第二次尝试,现在我更好地理解了你的问题。

您可以使用MutationObserver 将更改输出到 DOM。像

这样简单的东西

var observer = new MutationObserver(function (mutations) {
  mutations.forEach(function (mutation) {
    console.log(mutation);
  });
})
observer.observe(document.body, {
  attributes: true,
  childList: true,
  characterData: true,
  subtree: true
});

var hiders = document.querySelectorAll('.hider'), 
    hiders = Array.prototype.slice.call(hiders);

hiders.forEach(function(el) { 
  el.parentNode.removeChild(el); 
}); 
<div class="hider"></div>
<div class="hider"></div>

在窗口的load 处理程序将起作用,并在每次更改时输出MutationRecord。我敢打赌其中一个将是您的元素(特别是记录中的removedNodes。)如果您使用它,此sn-p 的浏览器控制台将包含您将看到的内容。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多