2014-10-07 23 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