1

是否可以创建一个可以管理其他用户脚本的 Greasemonkey 脚本?
在给定用户脚本 URL 列表的情况下,我想编写一个自动安装一组其他用户脚本的用户脚本。

4

2 回答 2

3

不,这是不可能的。如果是这样,那将是一个重大的安全漏洞。

您可以做的最好的事情是为每个脚本触发安装对话框,并让用户决定是否要安装脚本。

如果您想办法绕过这些限制,请告诉我们,以便我们可以关闭它,匆忙发布。;-)



要触发下载对话框:

  1. 获取直接下载 URL。
    例如,对于这个脚本:(
    点击查看大图)查找下载地址

    下载地址为:
    http://userscripts.org/scripts/source/26062.user.js.

  2. 然后,您的脚本将触发 Greasemonkey 安装对话框,方法是使用<iframe>.

    这是一个完整的 Greasemonkey 脚本,它演示了:

    // ==UserScript==
    // @name     _Auto popup Greasemonkey Script Install Dialog
    // @include  http://YOUR_SERVER.COM/YOUR_PATH/*
    // @include  http://stackoverflow.com/faq
    // @require  http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js
    // @grant    GM_addStyle
    // ==/UserScript==
    
    var scriptJS_URL    = "http://userscripts.org/scripts/source/26062.user.js";
    
    $("body").append (
        '<iframe src="' + scriptJS_URL + '" class="gmImstallIframe"></iframe>'
    );
    
    GM_addStyle ( "                                 \
        iframe.gmImstallIframe {                    \
            width:                  1px;            \
            height:                 1px;            \
            border:                 none;           \
        }                                           \
    " );
    


  3. 重要提示: Greasemonkey(大约 1.5 版)目前似乎存在一个错误。该Install按钮有效,但该Show Script Source按钮似乎已被跨域脚本破坏。

    Greasemonkey 安装弹出窗口

于 2012-12-06T04:57:45.440 回答
2

在 Firefox 中,您可以在隐藏框架中调用用户脚本的 URL,以流畅地创建分期付款弹出窗口。那是你能得到的最接近的。

无论如何都不适用于 Chrome 用户,而您绕过该安装对话框的真正原因当然是不可能的。

于 2012-12-06T21:47:56.243 回答