Как получить объект окна страницы от Vimperator?
Я использую:
- Firefox 46
- Вимператор 3.13
Я хочу использовать Vimperator для внедрения javascript внутри веб-страницы, что-то вроде Grease Monkey, но с помощью Vimperator и его :js
команда.
Но Вимператор :js
Команда и текущая HTML-страница имеют разные области действия, и я не могу узнать, как перейти к текущей странице window
объект, от :js
,
Например, если я открываю веб-консоль Firefox и запускаю:
window.myvar = 10
Затем, если я запускаю следующее на панели инструментов Vimperator:
:js alert(window.myvar)
, то он отображает undefined
,
Итак, как мне получить текущую страницу window
объект от Вимператора?
1 ответ
использование content
,
использование content
, Например. Документ, представленный в текущей вкладке content.document
,
Кстати, объект верхнего уровня, который вы получаете с window
представляет графический интерфейс Firefox.
предупреждение:
В Vimperator и Pentadactyl есть древняя ошибка, которая приводит к сбою Firefox, если вы попытаетесь использовать автозаполнение командной строки Vimperator на content
объект. Поскольку он срабатывает автоматически (если вы не отключите его), это означает, что вы даже не можете набрать content.
в командной строке - запустит автозаполнение и сразу же вылетит браузер.
Вместо этого вам нужно либо вставить команду, либо набрать сказать: t.myVar
, а затем отскок назад, чтобы заполнить conten
, (Не перемещайте курсор прямо назад .
- использовать Дом или что-то.) Это действительно боль в заднице, но это так.
Вы можете использовать автозаполнение, когда вы глубже, но не с content
,
Если вам нужно исследовать объект окна, вы должны сделать это с помощью другого инструмента - Firebug, инструментов разработчика и т. Д.... Browser Console (CSJ) - хороший выбор, поскольку он точно соответствует тому, что вы видите в Vimperator.
обходной путь
Вы можете использовать привязку ключей следующим образом:
:cmap <C-w> <Home>echo content.<End>
Затем, если вы откроете командную строку с помощью :, введите myVar
и нажмите Cw, он изменит командную строку на echo content.myVar
и поместите курсор в конец.
(Вы можете заменить echo
с js
если вы предпочитаете - я нахожу echo
более удобный.)