【问题标题】:Including code from a URL into a Greasemonkey script to use it as the script?将 URL 中的代码包含到 Greasemonkey 脚本中以将其用作脚本?
【发布时间】:2017-08-20 16:27:14
【问题描述】:

假设我在 GitHub 上有一个包含 3 个文件的存储库:

  1. myGreasemonekyScript.js
  2. readme.md
  3. license.md

myGreasemonekyScript.js 存储一个 Greasemonkey 脚本:

// ==UserScript==
// @name        facebook
// @namespace   nms
// @include     http://*.example.com/*
// @include     https://*.example.com/*
// @version     1
// @grant       none
// ==/UserScript==

// The rest of the script...

有没有办法只从 Greasemonkey 调用它,以便 本地 Greasemonkey 脚本文件只包含(包含)位于 GitHub 中的远程版本?

注意:我想这样做的原因是极简主义,而不是在本地有两个版本(GM 脚本文件和另一个文件夹中的备份),我想将代码编辑集中在一个地方,而不需要每次重新复制每个文件之间的更改。

【问题讨论】:

    标签: javascript include greasemonkey


    【解决方案1】:

    我可以看到四个选项:

    1。只需从 github 安装脚本

    You will need to tweak the update interval.

    您需要做的就是在 github 上进入 Raw 视图,greasemonkey 会要求您安装脚本。我创建了一个example repository to demonstrate this

    脚本安装后,进入设置,将自动更新设置为On

    延伸阅读:How does user script updating work?

    2。附加<script>标签

    这是非常明显的解决方案,但出于安全原因不适合生产。您可以将脚本标签附加到文档中,将您的脚本链接到 github。

    3。 @require 命令

    这存在 Greasemonkey 仅下载一次 @require 依赖项的缺陷,因此您需要在 URL 中更改某些内容(例如 ?random_number)以在更新脚本后强制刷新。

    4。 Use my refresher

    我曾经做过 Node.js 脚本,它接受文件系统上任何地方的用户脚本文件的路径。然后它将在 process.env.appdata+"\\Mozilla\\Firefox\\Profiles\\ap7ptx7o.default\\gm_scripts" 中搜索这些路径(您可能需要更改此路径),并且每次修改引用路径(GitHub 存储库中的路径)时,它都会将其复制到您的用户脚本文件夹中。

    【讨论】:

    • 您能否详细说明选项 1?这似乎正是我所需要的。具体来说,enter Raw view 是什么,以及更新获取是如何完成的。
    • @sangoko 我更新了答案。您将需要调整自动更新设置。使用 Google chrome 中的 Tampermonkey 更容易做到这一点。
    • 为什么 2 号有问题?如果我编写脚本并且我的浏览器环境通过扩展非常小。有什么问题?
    • @Bernia 我没说这有问题,还是我说的?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-01
    • 2016-10-03
    • 1970-01-01
    相关资源
    最近更新 更多