2010-10-07 67 views

回答

0

如果您不想重新安装脚本,则可以重新启动Chrome。
这应该使您的更改生效。

我同意这是很烦人的

3

你可以做,如果你有地方的服务器,你可以导入你改变的文件。

像这样

// 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然后我的自定义脚本,当我运行网页总是重新加载整个脚本。

也许这对你也有帮助。

+0

太棒了!为什么没有更多的人谈论这种方法? – 2011-06-03 18:56:51

13

是的,有一种方法可以做到这一点。使用从this brilliant answer(^ _ ^)中采用的方法,您可以编辑脚本 - 并点击“重新加载”链接以使更改生效。

这种方法的好处是Chrome的Extensions folder 没有得到凌乱,难以辨认的文件夹和文件名,你可以很容易地找到你想调整脚本。

下面是如何设置你的工作环境,以方便脚本更新:

  1. 创建一个目录,这是方便你,不到哪铬通常查找扩展的 。例如,创建:C:\MyChromeScripts\
    这将是所有脚本将来所在的位置。

  2. 对于每个脚本创建自己的子目录。例如,Script_1,Script_2等。

  3. 每个子目录应包含其脚本EG MyScript1.user.js以及该脚本使用的所有文件。

  4. 现在为了秘密......您还必须在该子目录中创建清单文件,并且它必须命名为: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" 
    } 
    


  5. 现在,Chrome的扩展管理器(URL = 铬://扩展/),展开开发模式

  6. 单击加载已解压的扩展...按钮。

  7. 有关文件夹,粘贴到你的脚本文件夹,例如:
    C:\MyChromeScripts\Script_1

  8. 您的脚本将被安装并运行。

  9. 保持扩展页面打开。现在,当您保存对* .js文件的任何更改时,请点击重新加载链接以使其立即生效。

  10. 享受!



扩展文件夹默认为:

 
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=选项运行Chrome改变它。

+0

这很好,有没有办法看到目录?我仍然需要回到扩展页面。 – 2017-10-15 03:01:24

+0

@BartlomiejLewandowski,这并不是我所知道的,但是自从他们使用本机用户脚本以来,并没有跟上Chrome的变化。 – 2017-10-15 03:14:36

0

一个简单的方法来做到这一点是使用两个文件:

  • 一个userscript.user.js与加载script.js GM头。你可以使它每天清除缓存(告诉它加载一个随机查询字符串加入script.js
  • script.js其中包含实际的脚本。

举例来说,我已经做了here

//#!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进行了更改,到明天为止,每个人都将使用更新后的版本。