2011-03-07 218 views
4

我知道螢火蟲無法訪問greasemonkey腳本,但我想知道是否有方法將腳本暴露給螢火蟲,並設置了一個斷點。我希望能夠最終完成我正在處理的腳本。逐步通過greasemonkey腳本

類似的說明:有沒有什麼方法可以測試腳本而無需每次等待4秒鐘才能安裝它?

回答

4

易於部分首先:

「類似的說明:?有沒有什麼辦法,而不必等待每次4秒,可以安裝它來測試腳本」

是的!

  1. 確保您安裝了Greasemonkey 9.0或更高版本。

  2. 確保您有一個配置了GM的編輯器。您可以在GM選項中設置此項,或者打開約:config並設置greasemonkey.editor,例如D:\Program Files\TextPad\TextPad.exe,但任何不錯的編程編輯器都應該這樣做。

  3. 現在打開通用的腳本的經理,並且按下相應編輯按鈕編輯腳本。 編輯器應該打開並載入正確的文件,並且每次保存文件時,所做的任何更改都會立即生效。

  4. 請注意,通過這種方式更改爲@require指令仍不會生效。也就是說,新文件不會被複制也不會被使用。您仍然必須卸載/重新安裝才能將@require更改爲stick。


「我在想,如果有揭露腳本螢火併將它設置一個斷點的方式。我希望能夠最終通過我的腳本步驟努力工作。「

有一個新的插件,FireBugMonkey,這可能有幫助(我還沒有需要嘗試它)。

談論讓Firebug在GM腳本上運行良好已經持續了4年多。以下是the Greasemonkey-Dev Group上的最新/相關主題。

在不久的將來,沒有辦法通過使用GM_ functions的GM腳本。

通過將代碼注入到目標頁面中,Firebug可以在其中查看它,您可以解決此問題,對於不使用此類函數的代碼部分。

例如,結構代碼如下所示:

function localMain() 
{ 
    /*--- Put EVERYTHING inside this wrapper, functions and variables. 
     Call or use nothing else that's defined in the GM script here. 
     You can use objects in the source page's scope, though. 
    */ 
    console.log ("Hiya!"); 
} 


然後在Firefox中,可以使用unsafeWindow.localMain = localMain;注入代碼,螢火蟲會看到它。

unsafeWindow.localMain();運行GM的代碼,localMain();從Firebug控制檯運行它。

請注意,此方法確實會暴露惡意JavaScript(來自目標頁面)的路由以獲取提升的權限並可能觸發您的系統(GM爲此首先轉移到沙箱的原因之一)。但是,定位受信任的頁面時,它很快且很簡單。

~~~
或者,你可以注入腳本像這樣:

var scriptNode   = document.createElement ("script"); 
scriptNode.textContent = localMain.toString() + "\n localMain();"; 
document.body.appendChild (scriptNode); 

這種方法適用於所有相關的瀏覽器。

~~~
像jQuery一樣,庫可以以類似的方式複製或注入。

+0

+1非常豐富。鏈接到FirebugMonkey不起作用 – qwertymk 2011-03-08 12:55:33

+0

@qwertymk,奇怪,我剛剛測試了鏈接到Google組。但後來我試圖按照FF插件的鏈接,並擊中「未找到」。搜索後,Google緩存顯示FireBugMonkey在2周前仍然存在。顯然它已被取消。抱歉。 – 2011-03-08 22:18:55

+1

有沒有理由被剝奪?它不工作? – qwertymk 2011-03-08 22:56:29

1

我知道,螢火蟲有Greasemonkey腳本沒有訪問權限,但我不知道是否有辦法揭露腳本螢火蟲,並將它設置一個斷點。我希望能夠最終完成我正在處理的腳本。

沒有設置Firebug的用戶腳本斷點大氣壓的方式,但約翰·巴頓(螢火蟲的)和其他計劃的方式來做到這一點,所以看出來它的未來!

在類似的說明:有沒有什麼方法可以測試腳本,而不必每次都等待4秒才能安裝它?

如果您使用Scriptish那麼安裝時就沒有延遲。

0

嘗試Venkman JS調試器。我不確定它是否可以訪問腳本,但值得一試。另一件要測試的是讓Firebug打開/啓用並粘貼幾個「調試器」;陳述,看看它是否會把它撿起來。這些是一些想法,我還沒有測試過。

+0

試過調試器。不起作用 – qwertymk 2011-03-08 01:48:38