谷歌浏览器扩展开发
我想在谷歌浏览器中开发我的第一个扩展,我正在学习以下教程:Tutorial 除了content.js中的两行代码外,一切都很好用问题是, content.js“不正确,我在第2行的Chrome控制台中显示”undefined“。 有人可以帮我解决问题,让我知道为什么会发生这种情况? 我与你分享content.js的内容以帮助我。谷歌浏览器扩展开发
content.js内容:
var firstHref = $("a[href^='http']").eq(0).attr("href");
console.log(firstHref);
清单/ JSON文件的内容:
{
"manifest_version": 2,
"name": "My Cool Extension",
"version": "0.2",
"icons": { "128": "icon_128.png" },
"background": {
"scripts": ["background.js"]
},
"content_scripts": [
{
"matches": [
"<all_urls>"
],
"js": ["jquery-2.1.3.min.js", "content.js"]
}
],
"browser_action": {
"default_icon": "icon.png"
},
"permissions": [
"tabs"
]
}
我猜,你的内容脚本是整个文档加载之前是loaded.That就是为什么它返回undefined
。 为了确保您的内容脚本注入至少得当,你应该在文件中定义“run_at
” manifest.json
例子:
"content_scripts": [
{
"matches": ["<all_urls>"],
"js": ["content.js"],
"run_at": "document_end",
"all_frames": true
}
],
请Content Scripts parameters了解更多详情。
我将run_at和all_frames行添加到了manifest.json,但我仍然得到了相同的undefined。 – NaThAN
您尝试过哪个网站? – user3444693
你注入了jQuery吗? –
是的,我通过在我的扩展文件夹中添加jquery-2.1.3.min.js文件来完成此操作。我也在上面分享了我的清单文件,以便检查自己。 – NaThAN
请将[问题]置于主题上:包括[重复问题*的[mcve]]。对于Chrome扩展程序或Firefox Web扩展程序,几乎总是需要包含* manifest.json *和一些背景,内容和/或弹出脚本/ HTML以及常用的网页HTML /脚本。寻求调试帮助的问题(“为什么我的代码不按我想要的方式工作?”)必须包括:(1)期望的行为,(2)特定问题或错误,以及(3)重现它所需的最短代码*在问题本身*。请参阅:[我可以在这里询问什么主题?](/ help/on-topic)和[问]。 – Makyen