我有这个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');
});
我想在访问kilnhg.com时运行它。
我输入kiln_hash.user.js
文件并将其安装到Chrome中,但它没有做任何事情。
我认为这可能是因为它需要jQuery。
我已经阅读了一些教程,看起来我可能需要创建一个manifest.json
文件并将其和.user.js
文件放入一个.crx
扩展名的zip文件中。< / p>
我仍然不知道我需要把它放在清单文件中。
我怎样才能让它发挥作用?
我创建了一个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"
}
我包含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>
我将其打包成带有.crx扩展名的zip,当我将文件拖到Chrome中时,它会询问我是否要安装我说是的。然后它告诉我“糟糕的魔法数字”
因此,我转到Chrome开发人员信息中心并上传了该zip文件,它接受了它,它使我支付5美元上传,然后安装。但它仍然无能为力。
答案 0 :(得分:23)
您不仅可能需要清单,清单是任何扩展的绝对必要部分。我不想这么说,但你可能需要先阅读一些关于扩展结构的内容,然后回答所有问题。
(如果你愿意,我可以给你一个答案,但你自己阅读这些链接会更有益,所有这些都在很好的细节中描述和解释)
<强>更新强>
要在本地安装您的扩展程序,您无需将其存档,只需转到您的扩展程序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"]
}
]
}
<强> 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');
});
在加载DOM并注入jquery之后,此内容脚本将在指定的域上运行。
您不需要背景页面。