如何使Google Chrome扩展程序运行jQuery脚本

JD *_*cks 9 jquery google-chrome-extension

我有这个jquery脚本:

$('[id^=changesetList] tr').each(function () {
    var sid = $(this).attr('sid');
    $(this).find('td span.changesetDescription').append('<span class="csetHash">' + sid + '</span>').css('color','#777');
});
Run Code Online (Sandbox Code Playgroud)

我想在访问kilnhg.com时运行这个.

我放入一个kiln_hash.user.js文件并将其安装到Chrome中,但它没有做任何事情.

我想这可能是因为它需要jQuery.

我已经阅读了一些教程,看起来我可能需要创建一个manifest.json文件并将其和.user.js文件放入带.crx扩展名的zip文件中.

我仍然不知道我需要把它放在清单文件中.

我怎样才能让它发挥作用?


更新

我创建了一个manifest.json文件:

{
  "name": "Kiln Hash",
  "version": "1.0.1",
  "description": "Show hash in changeset list in Kiln",
  "content_scripts": [
    {
      "matches": ["https://*.kilnhg.com/*"],
      "js": ["jquery.js"]
    }
  ],
  "background_page": "bg.html"
}
Run Code Online (Sandbox Code Playgroud)

我包含jquery.js文件(版本1.4.2)和bg.html文件:

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script src="jquery.js"></script>

<script>

$(document).ready(function(){
    $(hash_link).click(function(){
        addHash();
        return false;
    });
});
function addHash()
{
    $('[id^=changesetList] tr').each(function () {
        var sid = $(this).attr('sid');
        $(this).find('td span.changesetDescription').append('<span class="csetHash">' + sid + '</span>').css('color','#777');
    });
}

</script>

<title>Untitled Document</title>
</head>

<body>
<a id="hash_link" href="#">Add Hash</a>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

我将它打包成带有.crx扩展名的zip,当我将文件拖到Chrome中时,它会询问我是否要安装我说是的.然后它告诉我"坏魔法数字"

所以我转到Chrome开发者信息中心并上传了zip,它接受了它,它让我付5美元上传,然后安装.但它仍然无能为力.

ser*_*erg 23

您不仅可能需要清单,清单是任何扩展的绝对必要部分.我不想这么说,但你可能需要先阅读一些关于扩展结构的内容,然后你的所有问题都会得到解答.

  • 概述(什么是内部扩展和什么是清单)
  • 内容脚本(如何使用jquery将脚本包含到特定域中)

(如果你愿意,我可以给你一个答案,但你自己阅读这些链接会更有利,所有这些都在很好的细节中描述和解释)

UPDATE

要在本地安装您的扩展程序,您无需将其存档,只需转到您的扩展程序chrome://extensions/,单击"开发人员模式","加载解压缩的扩展程序"按钮,然后将其指向您的扩展文件夹.

如果要将脚本注入某个页面,则需要使用所谓的"内容脚本".您的清单应如下所示:

{
  "name": "Kiln Hash",
  "version": "1.0.1",
  "description": "Show hash in changeset list in Kiln",
  "content_scripts": [
    {
      "matches": ["https://*.kilnhg.com/*"],
      "js": ["jquery.js", "content_script.js"]
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

content_script.js:

$('[id^=changesetList] tr').each(function () {
    var sid = $(this).attr('sid');
    $(this).find('td span.changesetDescription').append('<span class="csetHash">' + sid + '</span>').css('color','#777');
});
Run Code Online (Sandbox Code Playgroud)

在加载DOM并注入jquery之后,此内容脚本将在指定的域上运行.

您不需要这样的背景页面.