2012-12-06 73 views
0

是否可以創建一個可以管理其他用戶腳本的Greasemonkey腳本?
我想編寫一個userscript,它會自動安裝一組其他用戶腳本,給出userscript URL列表。使用Greasemonkey腳本來安裝其他用戶腳本

+0

如果用戶腳本可以切換已安裝的腳本(對於特定網站),這也會很有用。 –

+0

這個問題給了我幾個非常有用的答案。爲什麼它低調? –

回答

3

不,這是不可能的。如果是的話,這將是一個重大的安全漏洞。

您可以做的最好的是觸發每個腳本的安裝對話框,並讓用戶決定是否要安裝該腳本。

如果您找到了解決這些限制的方法,請告訴我們,以便我們可以關閉它,趕快行動。 ;-)



要觸發下載對話框:

  1. 獲取直接下載網址。
    例如,對於this script
    (Click for larger image)Finding download URL

    的下載網址是:
    http://userscripts.org/scripts/source/26062.user.js

  2. 然後,您的腳本將通過將該URL與一起發送,從而觸發Greasemonkey安裝對話框。

    這裏是一個完整的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版)中的錯誤。 安裝按鈕可以工作,但顯示腳本源按鈕似乎是針對跨域腳本進行處理的。

    Greasemonkey install pop-up

+0

具體來說,如何觸發特定腳本的安裝對話框?如果可能的話,這將是一個合理的解決方案。 –

+0

查看已更新的答案。 –

+0

谷歌瀏覽器不再允許從外部網站安裝用戶腳本,但可能有解決此限制的方法:http://support.google.com/chrome_webstore/bin/answer.py?hl = en&answer = 2664769&p = crx_warning我會盡量找到一種方法讓這個腳本在Google Chrome和Firefox中正常工作。 –

2

在Firefox中你可以調用的URL userscripts在一個隱藏幀流利創建安裝彈出窗口。這是最接近你可以得到的。

無論如何,Chrome用戶無法正常工作,而您的真正原因是繞過該安裝對話框 - 當然是不可能的。

+0

如何在Firefox中以隱藏框架調用URL? –

+0

只需追加'