我有一个很有效的.js文件。除了带选择器的行及其后续控制台日志不返回任何内容。我在控制台中尝试了代码并且它可以工作:控制台日志返回我期望的内容。那么问题是,为什么它在脚本文件中不起作用?为了解决这个问题,我已经注释掉了脚本中的每一行。它仍然无法正常工作。这些仅仅4行可能有什么问题? - 现在它们都在脚本文件中。
$( document ).ready(function() {
alert("alert");
var fullname2 = $('#topcard').find('.profile-info').find('h1').text().replace(/ /g, '_');
console.log(fullname2);
});
如果我在控制台中运行代码,或者运行.js脚本,则会触发警报。
以上是content.js中的代码,该代码是Chrome扩展程序的一部分。所以我确认错误是在文档准备好之前运行.js文件的相关内容,如下所示:如果我使用setTimeout,则错误似乎从运行js中消失。脚本:
setTimeout(function(){
console.log("hello");
$(document).ready(function() {
var fullname2 = $('#topcard').find('.profile-info').find('h1').text();
console.log(fullname2);
});
}, 2000);
通过运行脚本,控制台可以正确记录完整名称。
我发现在manifest.json中设置“run_at”可能会有所不同。但到目前为止我还没有成功。由于默认为“document_idle”,并且当我没有指定run_at时它不起作用,现在我将其设置为“run_at”:“document_end”。但是如果没有setTimeout,它仍然无效。