DaM*_*GeX 7 javascript firefox greasemonkey scriptish
我目前正试图弄清楚如何在我的webserver中包含一个javascript,我的scriptish/greasemonkey脚本,并在每次调用usercript时重新加载脚本.
我在我的网络服务器上编辑脚本,每次我对包含的脚本进行更改时,我都不想重新安装用户脚本.
有没有解决这个问题的方法?我一直在寻找答案但到目前为止没有运气.
所以要清楚,我的用户脚本看起来像这样:
// ==UserScript==
// @id HET
// @name SettingsHandler
// @version 1.0
// @namespace HET
// @require http://urltoscript/scripts/he/lib.js
// @run-at document-end
// ==/UserScript==
Run Code Online (Sandbox Code Playgroud)
我的外部脚本如下所示:
alert('got it');
Run Code Online (Sandbox Code Playgroud)
所有这些都非常容易用于测试目的.此设置有效,但只是第一次,当我更改我的lib.js脚本时,usercript仍然读取旧脚本.有没有办法阻止用户脚本缓存外部脚本?或者还有其他可以帮助我的元数据吗?
提前谢谢,戴夫
这是唯一可行的答案 https://github.com/Tampermonkey/tampermonkey/issues/475
建议使用选项 4。但是它们是异步加载的,因此加载顺序可能会有所不同
有几种方法可以减轻您的疼痛。:)
- 您可以在保存脚本之前增加版本号,所有外部资源将被重新加载。
- 将“配置模式”设置为“高级”后,您可以配置外部更新间隔。注意:“始终”仍然表示资源被使用后。因此,您可能需要执行/加载页面两次。
- 如果您使用 Tampermonkey Beta(Chrome 或 Firefox),您可以就地编辑外部资源(因为现在除了删除按钮之外还有一个编辑按钮)。
- 复制资源并将其存储在本地。在 Chrome 的扩展程序管理页面或 Tampermonkey 的设置页面(如果您使用的是 Firefox)启用“本地文件访问”后,您可以通过本地 file:// URI @require 它们。
不确定如何使用 GM/userscript 指令来完成此操作,但您可以轻松地自己添加脚本并将时间戳附加到 url 以防止浏览器缓存它:
var remoteScript = document.createElement('script');
remoteScript.src = 'http://domain.com/path/to/script.js?ts='+(+new Date());
remoteScript.onload = init;
document.body.appendChild(remoteScript);
function init() {
... do stuff
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1627 次 |
| 最近记录: |