我知道螢火蟲無法訪問greasemonkey腳本,但我想知道是否有方法將腳本暴露給螢火蟲,並設置了一個斷點。我希望能夠最終完成我正在處理的腳本。逐步通過greasemonkey腳本
類似的說明:有沒有什麼方法可以測試腳本而無需每次等待4秒鐘才能安裝它?
我知道螢火蟲無法訪問greasemonkey腳本,但我想知道是否有方法將腳本暴露給螢火蟲,並設置了一個斷點。我希望能夠最終完成我正在處理的腳本。逐步通過greasemonkey腳本
類似的說明:有沒有什麼方法可以測試腳本而無需每次等待4秒鐘才能安裝它?
易於部分首先:
「類似的說明:?有沒有什麼辦法,而不必等待每次4秒,可以安裝它來測試腳本」
是的!
確保您安裝了Greasemonkey 9.0或更高版本。
確保您有一個配置了GM的編輯器。您可以在GM選項中設置此項,或者打開約:config並設置greasemonkey.editor
,例如D:\Program Files\TextPad\TextPad.exe
,但任何不錯的編程編輯器都應該這樣做。
現在打開通用的腳本的經理,並且按下相應編輯按鈕編輯腳本。 編輯器應該打開並載入正確的文件,並且每次保存文件時,所做的任何更改都會立即生效。
請注意,通過這種方式更改爲@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一樣,庫可以以類似的方式複製或注入。
我知道,螢火蟲有Greasemonkey腳本沒有訪問權限,但我不知道是否有辦法揭露腳本螢火蟲,並將它設置一個斷點。我希望能夠最終完成我正在處理的腳本。
沒有設置Firebug的用戶腳本斷點大氣壓的方式,但約翰·巴頓(螢火蟲的)和其他計劃的方式來做到這一點,所以看出來它的未來!
在類似的說明:有沒有什麼方法可以測試腳本,而不必每次都等待4秒才能安裝它?
如果您使用Scriptish那麼安裝時就沒有延遲。
+1非常豐富。鏈接到FirebugMonkey不起作用 – qwertymk 2011-03-08 12:55:33
@qwertymk,奇怪,我剛剛測試了鏈接到Google組。但後來我試圖按照FF插件的鏈接,並擊中「未找到」。搜索後,Google緩存顯示FireBugMonkey在2周前仍然存在。顯然它已被取消。抱歉。 – 2011-03-08 22:18:55
有沒有理由被剝奪?它不工作? – qwertymk 2011-03-08 22:56:29