【问题标题】:How to reload only a userscript, i.e. without reloading the page?如何仅重新加载用户脚本,即不重新加载页面?
【发布时间】:2015-03-22 22:39:21
【问题描述】:

我正在为 Web 应用程序编写 Greasemonkey 用户脚本,需要配置步骤才能真正测试我的用户脚本的功能。因此,每次我重新加载页面——从更新的文件中刷新我的用户脚本——时,我都必须在测试之前重新配置 Web 应用程序。不用说,这很快就会过时。

有没有办法只重新加载用户脚本,最好是从用户脚本本身?我想例如将重新加载绑定到键盘快捷键。

我认为这一定是一个非常普遍的需求,但在试图找到解决方案时却空手而归。

【问题讨论】:

  • (1) 如果您不使用GM_ 函数,在控制台中执行所有开发。 只有当代码有效时,才将其放入脚本中。 (2) 即使使用GM funcs,通常也可以在控制台中测试大部分代码。 (3) 制作一个单独的用户脚本,自动执行所有配置步骤。 (4) 如果您真的很痛苦,请在新代码中制作您的脚本 AJAX 并 eval()脚本范围。除非您的脚本严重依赖 GM_ 函数,否则不要考虑这一点。

标签: javascript jquery greasemonkey userscripts reloading


【解决方案1】:

然后可能想看看 AJAX,它是一种无需刷新网页即可与数据库交互的工具。 IE - 动态网页。

可能会有所帮助,只需进行一般的谷歌浏览,看看它是否适用。

https://www.w3schools.com/xml/ajax_intro.asp

【讨论】:

    【解决方案2】:

    一般不可行。

    正如一位协作者在 GreaseMonkey 的 GitHub 存储库中对 this issue 所说的那样,几乎所有脚本都会以使重复执行脚本出现问题的方式改变页面。

    我在最初的问题中忽略了这一事实——我的脚本确实以使重复执行脚本出现问题的方式改变了页面。

    如果你想实现脚本重载,并且你找到了一个可行的方法来做到这一点:

    • 请务必仔细评估它对页面的影响,并且
    • 实现清理代码,为页面的重复执行做好准备。

    【讨论】:

      猜你喜欢
      • 2012-02-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-21
      • 1970-01-01
      • 2012-06-15
      相关资源
      最近更新 更多