JavaScript中的DOMContentLoaded事件未触发

JavaScript中的DOMContentLoaded事件未触发,javascript,firefox,Javascript,Firefox,下面是我非常简单的代码: document.addEventListener("DOMContentLoaded", function() { console.log('Your document is ready!'); }); 我将其粘贴到浏览器的开发人员控制台中。但是,它不会记录任何内容。谁能帮我弄清楚为什么会这样 在执行脚本之后,我得到的只是未定义的。如果我移除加载包装器,同样的代码也可以工作 console.log('Your document is ready!'); 我想

下面是我非常简单的代码:

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';
});
对于domload事件,它不做任何事情。如果没有DOM load事件,我会得到以下错误:

document.querySelector(...) is null
如果我像这样直接粘贴到开发者控制台中

document.querySelector("._3xiuDJ ._52MoHd").innerHTML = 'Test';
它工作得很好

如果我把它放在脚本中。它给了我上面的空错误。如果我将它放在Tampermonkey脚本的包装器中,它不会做任何事情


谢谢。

在您的脚本标题中,是否有@run at命令?如果有,请将其移除

我能想到的另一件事是,您试图访问的HTML部分在DOM加载后被动态加载,这就是为什么您不能立即获取它


–Andy 8月11日11:57,在你的脚本标题中,你有@run at命令吗?如果有,请将其移除

我能想到的另一件事是,您试图访问的HTML部分在DOM加载后被动态加载,这就是为什么您不能立即获取它


–Andy 8月11日11:57

事件在加载DOM时触发。当您打开控制台并运行代码时,DOM可能已经加载,因此它不会(再次)触发事件。未定义的
。谢谢@Andy.)我使用Tapermonkey插件()运行了相同的代码,但仍然无法运行。我需要访问一些DOM元素。所以,如果我用DOM加载事件运行代码,我仍然会得到一个错误。在脚本头中有@runat命令吗?如果有,请将其移除。我能想到的另一件事是,在加载DOM之后,您尝试访问的HTML部分正在动态加载,这就是为什么您不能立即获取它。谢谢@Andy。你是对的,内容是动态加载的。我做了一些测试来验证这一点,最后使用一个计时器来检查元素是否已加载。当您打开控制台并运行代码时,DOM可能已经加载,因此它不会(再次)触发事件。未定义的
。谢谢@Andy.)我使用Tapermonkey插件()运行了相同的代码,但仍然无法运行。我需要访问一些DOM元素。所以,如果我用DOM加载事件运行代码,我仍然会得到一个错误。在脚本头中有@runat命令吗?如果有,请将其移除。我能想到的另一件事是,在加载DOM之后,您尝试访问的HTML部分正在动态加载,这就是为什么您不能立即获取它。谢谢@Andy。你是对的,内容是动态加载的。我做了一些测试来验证这一点,最后使用计时器检查元素是否已加载。