是否可以创建一个可以管理其他用户脚本的 Greasemonkey 脚本?
在给定用户脚本 URL 列表的情况下,我想编写一个自动安装一组其他用户脚本的用户脚本。
问问题
1605 次
2 回答
3
不,这是不可能的。如果是这样,那将是一个重大的安全漏洞。
您可以做的最好的事情是为每个脚本触发安装对话框,并让用户决定是否要安装脚本。
如果您想办法绕过这些限制,请告诉我们,以便我们可以关闭它,匆忙发布。;-)
要触发下载对话框:
获取直接下载 URL。
例如,对于这个脚本:(
点击查看大图)下载地址为:
http://userscripts.org/scripts/source/26062.user.js
.然后,您的脚本将触发 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; \ } \ " );
重要提示: Greasemonkey(大约 1.5 版)目前似乎存在一个错误。该Install按钮有效,但该Show Script Source按钮似乎已被跨域脚本破坏。
于 2012-12-06T04:57:45.440 回答
2
在 Firefox 中,您可以在隐藏框架中调用用户脚本的 URL,以流畅地创建分期付款弹出窗口。那是你能得到的最接近的。
无论如何都不适用于 Chrome 用户,而您绕过该安装对话框的真正原因当然是不可能的。
于 2012-12-06T21:47:56.243 回答