我希望能像在Firefox中那样,编辑后保存并刷新页面后就能看到更改。每次都需要重新安装,这很麻烦,你有什么好的想法吗?
C:\MyChromeScripts\
。Script_1
、Script_2
等。MyScript1.user.js
,以及该脚本使用的任何文件。manifest.json
。最少的示例内容:
{
"manifest_version": 2,
"content_scripts": [ {
"exclude_globs": [ ],
"include_globs": [ "*" ],
"js": [ "MyScript1.user.js" ],
"matches": [ "https://stackoverflow.com/*",
"https://stackoverflow.com/*"
]
} ],
"description": "This script does X, Y, and Z.",
"name": "My script number 1",
"version": "1"
}
现在,在Chrome的扩展程序管理器中(URL=chrome://extensions/),展开开发者模式。
点击加载已解压的扩展程序...按钮。
对于文件夹,请粘贴您的脚本的文件夹,例如:C:\MyChromeScripts\Script_1
。
您的脚本将被安装并运行。
保持扩展程序页面打开。现在,当您保存任何更改到您的*.js文件时,请点击重新加载链接以立即生效。
享受!
1 默认情况下,扩展程序的文件夹为:
Windows XP: C:\Documents and Settings\***{username}***\Local Settings\Application Data\Google\Chrome\User Data\Default
Windows Vista: C:\Users\***{username}***\AppData\Local\Google\Chrome\User Data\Default
Windows 7: C:\Users\***{username}***\AppData\Local\Google\Chrome\User Data\Default
虽然您可以通过使用--user-data-dir=
选项来更改它。
// a function that loads jQuery and calls a callback function when jQuery has finished loading
function addJQuery(callback) {
var script = document.createElement("script");
script.setAttribute("src", "http://server.url/Custom/jquery.min.js");
script.addEventListener('load', function() {
var script = document.createElement("script");
script.textContent = "(" + callback.toString() + ")();";
document.body.appendChild(script);
}, false);
document.body.appendChild(script);
}
function addScript(callback) {
var script = document.createElement("script");
script.setAttribute("src", "http://server.url/Custom/Custom script.js");
script.addEventListener('load', function() {
var script = document.createElement("script");
script.textContent = "(" + callback.toString() + ")();";
document.body.appendChild(script);
}, false);
document.body.appendChild(script);
}
// load jQuery and execute the init function
addJQuery(addScript);
这会先加载jQuery,然后是我的自定义脚本,当我运行网页时,它总是重新加载整个脚本。
也许这对你有帮助。
一个简单的方法是使用两个文件:
userscript.user.js
,它加载script.js
。您可以让它每天清除缓存(告诉它加载添加了随机查询字符串的script.js
)script.js
包含实际脚本。例如,我在这里做到了这一点
//#!userscript.user.js
// ==UserScript==
//GM headers
// ==/UserScript==
(function(){
var d=new Date();
var script = document.createElement("script");
script.type = "text/javascript";
script.src="script.js?purge="+d.getMonth()+""+d.getDay(); //appends a new query string every day. This evades browser cache
document.body.appendChild(script); //you can append to `head` as well, I used body here sine I needed jQuery already loaded
})();
script.js?purge=xyz
,其中 xyz
取决于日期。清除查询字符串确保脚本仅被缓存一天,不会更长时间——到了第二天,它将重新加载。对于开发使用,"script.js?purge="+Math.random()
更好。但是,如果脚本在您的本地机器上,则无需担心自己的缓存。script.js
,明天每个人都将使用更新的版本。如果您不想重新安装脚本,可以重启 Chrome。
这样应该会使您的更改生效。
我同意这很烦人。