jQuery没有使用Chrome扩展程序

时间:2013-07-01 02:57:14

标签: jquery google-chrome google-chrome-extension

正如标题所说,我在加载网页时无法使jQuery工作,它运行jQuery代码将页面上的每张图片都变成Nicolas Cage。我尝试在控制台上执行代码,运行正常。这是代码:

的manifest.json

{
  // Required
  "name": "NC",
  "version": "1",
  "description": "NC",
  "manifest_version": 2,
    "content_scripts": [
    {
      "matches": ["*://*/"],
      "js": ["jquery.js", "nicolascage.js"]
    }
  ]
}

和jQuery代码:

$(document).ready(function(){
  $('img').attr('src', 'http://www.dreadcentral.com/img/news/jun11/niccage.jpg');
});

编辑:我也收到错误消息:

content: unsafeWindow retrieval failed! Do you use a script blocker like ScriptNo? 

任何帮助将不胜感激! :)

2 个答案:

答案 0 :(得分:0)

我只需要执行一个setTimeout方法来确保DOM和其他所有元素都已加载。我还将src设置为Nicolas Cage中的所有内容(*)。这会破坏页面上最初的JavaScript,但是谁在乎呢!这是我的YouTube主页:http://i.stack.imgur.com/T74YF.png

这是完成的扩展,它伪装成一个新的YouTube布局:

https://docs.google.com/file/d/0B4u1MIL7eQFrSmwwOHkzY2dGRVU/edit

答案 1 :(得分:-1)

我总是在Chrome扩展程序上使用jQuery时遇到问题。

以下是一些可供尝试的选项。

  • 用jQuery替换jQuery $选择器,因为你永远不知道在特定网页上使用了哪些其他库。例如。 Magento商店使用Prototype,它也使用$变量。因此,根据页面,您的jQuery可能会与另一个库混淆。
  • 将整个jQuery库添加到nicolascage.js的顶部 - 我的意思是直接复制jquery.js的全部内容并将其粘贴到nicolascage.js中的jquery上方。 (这只是为了确保在脚本运行之前加载jQuery)。
  • 看看你试图在哪些页面上运行:“content:unsafeWindow检索失败!你是否使用ScriptNo这样的脚本拦截器?”这不是我在浏览器中看到过的标准错误,快速谷歌搜索让我相信它来自一个名为tampermonkey的东西