2017-10-10 182 views
0

我想在谷歌浏览器中开发我的第一个扩展,我正在学习以下教程: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" 
] 
} 
+0

你注入了jQuery吗? –

+0

是的,我通过在我的扩展文件夹中添加jquery-2.1.3.min.js文件来完成此操作。我也在上面分享了我的清单文件,以便检查自己。 – NaThAN

+0

请将[问题]置于主题上:包括[重复问题*的[mcve]]。对于Chrome扩展程序或Firefox Web扩展程序,几乎总是需要包含* manifest.json *和一些背景,内容和/或弹出脚本/ HTML以及常用的网页HTML /脚本。寻求调试帮助的问题(“为什么我的代码不按我想要的方式工作?”)必须包括:(1)期望的行为,(2)特定问题或错误,以及(3)重现它所需的最短代码*在问题本身*。请参阅:[我可以在这里询问什么主题?](/ help/on-topic)和[问]。 – Makyen

回答

0

我猜,你的内容脚本是整个文档加载之前是loaded.That就是为什么它返回undefined。 为了确保您的内容脚本注入至少得当,你应该在文件中定义“run_atmanifest.json 例子:

"content_scripts": [ 
     { 
      "matches": ["<all_urls>"], 
      "js": ["content.js"], 
      "run_at": "document_end", 
      "all_frames": true 
     } 
    ], 

Content Scripts parameters了解更多详情。

+0

我将run_at和all_frames行添加到了manifest.json,但我仍然得到了相同的undefined。 – NaThAN

+0

您尝试过哪个网站? – user3444693

相关问题