2014-10-07 4 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'. '$ .noConflict()' может помочь, если вы хотите использовать 'window. $' для чего-то другого. – arcyqwerty

+0

Да, я думал о создании сценария greasemonkey, но это повлияет на всю загрузку страницы. Интересно, есть ли скрытая опция в DevTools, чтобы просто вставить скрипт в консоль, не затрагивая этот документ. – silverwind

+0

Был бы определенно заинтересован в этом. Если вы работаете только с определенными страницами/доменами, вы всегда можете включить/отключить скрипт или изменить '@ include' и' @ match', как вам хотелось бы, но для многих независимых страниц это может быть хлопот. – arcyqwerty

ответ

6

Developer Toolbar имеет команду ввода, которая позволит вам добавить сценарий в текущую страницу немного легче. Он поддерживает широко используемые библиотеки, такие как jQuery и подчеркивание. Дополнительные сведения см. В документах, к которым я привязан.

Если вы хотите всегда сделать это, вы можете создать надстройку похож на dotjs - главное отличие заключается в том, что вам нужно будет выставить объект JQuery в реальной DOM страницы, добавьте сценарий содержание не достаточно хорошо. Вероятно, вы также должны всегда пытаться обнаружить существующий jQuery? Я не совсем уверен, что вы подразумеваете под «без влияния на окно. $ Или window.jQuery для текущей страницы» - текущая область консоли по умолчанию - это текущей страницы. Это отличается только в том случае, если вы отлаживаете и останавливаетесь в точке останова в какой-то другой области.

+1

Вы правы, я был под иллюзией, что консоль запущена в другой сфере. Мне все еще интересно, как такие переменные, как '$' (псевдоним document.querySelector), представлены в консоли, подумал. Это не свойства на 'window'. Я думаю, что «inject» будет технически равным запуску сценария greasemonkey. – silverwind

+0

Это зависит, я думал, что скрипты greasemonkey были отдельной песочницей. Используя SDK Add-on вы можете теперь клонировать объекты в контент, см. [This] (https://blog.mozilla.org/addons/2014/04/10/changes-to-unsafewindow-for-the-add- на SDK /). Что касается области консоли, это волшебство devtools, которое правильно обрабатывает консольные команды и утилиты, такие как clear() и $$. – canuckistani

Смежные вопросы