2014-10-07 19 views
4

我在開發人員工具中做了很多工作,並喜歡在控制檯中使用jQuery來運行代碼片段。爲了jQuery注入的頁面(和控制檯),我粘貼此進入devtools控制檯:Firefox DevTools:自動注入jQuery

var j = document.createElement('script'); j.src = "//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"; document.getElementsByTagName('head')[0].appendChild(j); 

是否有辦法來自動jQuery注入開發工具控制檯?理想情況下,不會影響當前頁面的window.$window.jQuery

+1

就我個人而言,我一直在使用JS書籤,它會在點擊時加載它,但理論上如果你有擴展名,你可以用Greasemonkey腳本加載它。請注意,即使使用上面的代碼,它也會修改'window。$'和'window.jQuery'。如果你想使用'window。$'作爲別的東西,'$ .noConflict()'可能會有所幫助。 – arcyqwerty 2014-10-07 22:17:57

+0

是的,我想過要做一個油門猴腳本,但那會影響所有的頁面加載。我想知道DevTools中是否有一些隱藏的選項可以將腳本插入到控制檯中,而不影響文檔。 – silverwind 2014-10-07 22:19:31

+0

絕對會對此感興趣。如果您只是在某些網頁/域上工作,您可以隨時啓用/禁用腳本,或者根據需要修改「@ include」和「@ match」,但對於許多獨立頁面而言,這可能很麻煩。 – arcyqwerty 2014-10-07 22:22:07

回答

6

Developer Toolbar有一個注入命令,可以讓你更輕鬆地將腳本注入當前頁面。它支持常用的庫,如jQuery和下劃線。有關更多信息,請參閱我鏈接到的文檔。

如果你想總是做到這一點,你可以創建一個附加類似dotjs - 的主要區別是,你將需要公開的jQuery對象到頁面的實際DOM,內容腳本不是夠好了。您應該也可以嘗試檢測現有的jQuery?我不太清楚你的意思是'不影響窗口。$或window.jQuery當前頁面' - 當前控制檯的默認範圍當前頁面。這隻有在你正在調試時纔會有所不同,並且在某個其他範圍內的某個斷點處停止。

+1

你是對的,我是在幻想中,控制檯運行在不同的範圍。我仍然想知道如何在控制檯中引入'$'(document.querySelector的別名)這樣的變量。這些不是'window'的屬性。我認爲'inject'在技術上等於運行一個grepmonkey腳本。 – silverwind 2014-10-08 02:50:23

+0

這取決於,我認爲greasemonkey腳本是一個單獨的沙箱。使用附加SDK可以將對象安全地克隆到內容中,請參閱[this](https://blog.mozilla.org/addons/2014/04/10/changes-to-unsafewindow-for-the-add-上-SDK /)。就控制檯的範圍而言,這是一些可正確處理控制檯命令和實用程序(如clear()和$$)的devtools魔術。 – canuckistani 2014-10-08 02:54:48