javascript - JavaScript 中的 DOMContentLoaded 事件未触发

标签 javascript firefox tampermonkey userscripts

这是我非常简单的代码:

document.addEventListener("DOMContentLoaded", function() {
   console.log('Your document is ready!');
});

我将其粘贴到浏览器的开发者控制台中。但是,它不记录任何内容。谁能帮我找出为什么会发生这种情况吗?

执行脚本后我得到的只是未定义。如果我删除加载包装器,相同的代码将起作用。

console.log('Your document is ready!');

我想在 Tampermonkey 中运行脚本。这是原始脚本:

document.addEventListener("DOMContentLoaded", function(){
  document.querySelector("._3xiuDJ ._52MoHd").innerHTML = 'Test';
});

对于 DOM load 事件,它不执行任何操作。如果没有 DOM 加载事件,我会收到以下错误:

document.querySelector(...) is null

如果我像这样直接将其粘贴到开发者控制台中,

document.querySelector("._3xiuDJ ._52MoHd").innerHTML = 'Test';

它工作得很好。

如果我把它放在 Tampermonkey 脚本中。它给了我上面的空错误。如果我将它放在 Tampermonkey 脚本的包装器内,它不会执行任何操作。

谢谢。

最佳答案

在你的脚本头中有@run-at命令吗?如果有,请将其删除。

我能想到的唯一一件事是,您尝试访问的 HTML 部分是在 DOM 加载后动态加载的,这就是为什么您无法立即获取它。

- 安迪 8 月 11 日 11:57

关于javascript - JavaScript 中的 DOMContentLoaded 事件未触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57449635/

相关文章:

只能在隐身模式下运行的 Tampermonkey 脚本?

google-chrome-extension - Chrome 扩展程序(和/或 tampermonkey 脚本)无法在某些网站(例如 gmail)上运行

javascript - 获取所有非唯一值(即 : duplicate/more than one occurrence) in an array

javascript - 如何使 matter.js 的最小示例工作?

javascript - 阻止执行特定的内联脚本标签

javascript - 是什么导致 Firefox 上 .mp4 出现 "mix-blend-mode mode"中的错误?

javascript - AS3 : Browser is Automatically telling Flash Player to Zoom Out

javascript - 输入所有字段时启用提交按钮时出错

javascript - 多页应用程序 - EXT JS 6 - 包 (404)

javascript - Firefox 插件 SDK : prompt with multiple checkboxes