【问题标题】:jQuery not loading in Google Chrome content_script extensionjQuery 未在 Google Chrome 内容脚本扩展中加载
【发布时间】:2012-01-23 14:15:58
【问题描述】:

我无法在 Google Chrome 用户脚本中加载 jQuery。

这就是我的 manifest.json 的样子:

{
    //...
    "content_scripts" : [{
        "js" : ["http://code.jquery.com/jquery-1.7.1.js", "code.js"],
        //...
    }],
    //...
}

但在code.js 中,$undefined

code.js 否则可以工作,实际上我有一个可以工作的书签(使用网站的 jQuery 版本)。

我尝试过 jQuery 的缩小版和非缩小版,无论是托管的还是本地的。

我还尝试在我的code.js 顶部嵌入一个缩小的 jQuery,但如果我这样做,代码甚至不会运行,实际上整个文件都不会运行(甚至在缩小的 jQuery 块之前的警报)。

如果你想看,here it is

【问题讨论】:

  • 我肯定会使用本地文件,但如果你尝试过并且它有效,那么我就不知所措了。这是我在工作扩展中拥有的清单文件的副本... "content_scripts": [{ "js": ["jquery-1.7.min.js"], }]
  • @Archer 它确实有效,但只有在卸载并重新安装(开发人员模式)扩展之后。这很奇怪,但至少我知道如果我遇到同样的问题我会这样做:)

标签: javascript jquery google-chrome google-chrome-extension content-script


【解决方案1】:

从您的 zip 中提供的 manifest.json 中,Chrome 在解压时向我发送了两个错误。

  1. “content_script[0].matches[0]”的值无效:缺少方案分隔符。
  2. 无法为内容脚本加载 javascript 'http://code.jquery.com/jquery-1.7.1.js'。

第一个说您的matches 语句格式不正确。在你的* 之后,你应该像这样添加://

"matches" : ["*://my.deviantart.com/messages/*"]

第二个是关于您尝试从外部资源加载 jquery。如果您更改本地文件的路径,它应该可以工作。

"js" : ["jquery.js", "code.js"],

当我在你的code.js 文件中console.log($) 在这些调整之后jquery 似乎工作得很好。

编辑: 请注意,您需要将以下内容添加到您的 html(在 <head> 部分):

<script src='./jquery.js'></script>

【讨论】:

  • 我将使用本地资源再试一次,尽管code.js 脚本确实在预期的 URL 中运行。
  • 好的,现在它可以工作了(在卸载并重新安装扩展程序之后)。修复它很奇怪,但我很高兴它结束了。现在我还有其他奇怪的问题,但我猜这是另一个问题。正如你所说,这两件事是错误的,脚本确实加载了 jQuery。
  • 嗨,Camilo,您能否分享您的解决方案,因为我也面临同样的问题超过 3 周,但我无法从远程服务器加载脚本。
猜你喜欢
  • 2016-04-22
  • 2020-04-20
  • 2014-11-01
  • 2011-11-25
  • 1970-01-01
  • 2014-01-18
  • 2019-11-05
  • 1970-01-01
  • 2013-01-02
相关资源
最近更新 更多