2013-02-26 33 views
15

我有一個Firefox的Greasemonkey腳本。該腳本包含這個元塊和一些代碼行。爲什麼我的Greasemonkey腳本不能更新?

我想在服務器上更新我的腳本,然後自動更新瀏覽器的腳本。 requireSecureUpdates選項已關閉。
我在做什麼錯?

我1.meta.js

// ==UserScript== 
// @name  Ibood autosubmit 
// @include https://*.ibood.com/* 
// @include http://*.ibood.com/* 
// @include * 
// @version 1.1 
// @require http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js 
// @grant GM_addStyle 
// @downloadURL http://www.tipsvoorbesparen.nl/1.user.js 
// @updateURL http://www.tipsvoorbesparen.nl/1.meta.js 
// ==/UserScript== 

回答

18

兩個問題:

  1. 目前,您的1.meta.js是:

    // ==UserScript== 
        // @name  Ibood autosubmit 
        // @include https://*.ibood.com/* 
        // @include http://*.ibood.com/* 
        // @include * 
        // @version 1.7 
        // @require http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js 
        // @grant GM_addStyle 
        // @downloadURL http://www.tipsvoorbesparen.nl/1.user.js 
        // @updateURL http://www.tipsvoorbesparen.nl/1.meta.js 
        // ==/UserScript== 
    

    注意前導空格?

    由於設計限制,Greasemonkey無法處理其Metadata Block的前導空格。

  2. 當前腳本版本似乎是1.8,但元文件版本爲1.7。

~~~~~
對於小腳本,你託管在自己的網站,甚至不與@updateURL設置麻煩。這主要是爲了節約帶寬,特別是在像userscripts.org這樣的網站上。

沒有@updateURL設置,Greasemonkey只會使用/檢查@downloadURL設置的任何值。這爲您節省了額外的維護工作(並且可能的SNAFU就像這樣)。

最後,在不相關的說明中,請勿使用@include *
使用@include *

  1. 減慢你的瀏覽器
  2. 可引起不必要的副作用
  3. 原因盡責用戶拒絕安裝腳本。





。具體而言,該位GM源文件中,parseScript.js

var gAllMetaRegexp = new RegExp(
    '^// ==UserScript==([\\s\\S]*?)^// ==/UserScript==', 'm'); 
+0

。你的意思是使用比賽而不是包括? – erm3nda 2015-01-18 08:06:11

+0

@ erm3nda,我說不要使用'@include *'。這個'*'有很大的不同。是的,最好使用'@ match',或者你可以使用類似'@include http:// YOUR_SERVER.COM/YOUR_PATH/*' – 2015-01-18 10:02:44

+0

的東西哦,你會說'@include *'LITERALLY。你是對的,那是錯誤的方式。 – erm3nda 2015-01-19 06:11:53

1

如果腳本工作,那麼有沒有可能與你的元塊什麼問題,除非,你需要使用一個有效的HTTPS源啓用更新。

參考 當你說不要使用包括你不說用什麼http://wiki.greasespot.net/Metadata_Block#.40downloadURL

+0

僅當需要安全更新選項被選中時才需要HTPS。 (是的,它在默認情況下在新的Greasemonkey安裝中進行檢查。)另外請注意,已經證明元數據塊*在* .meta.js文件中存在錯誤。所以這部分答案是錯誤的。 – 2014-07-27 00:31:58

相關問題