Как объяснено частично в других ответах, переменные JS со страницы изолированы от вашего скрипта содержимого расширения Chrome. Обычно нет никакого доступа к ним.
Но если вы вставите тег JavaScript на страницу, у вас будет доступ к тем переменным, которые там определены.
Я использую служебную функцию для ввода моего скрипта на странице:
/**
* inject - Inject some javascript in order to expose JS variables to our content JavaScript
* @param {string} source - the JS source code to execute
* Example: inject('(' + myFunction.toString() + ')()');
*/
function inject(source) {
const j = document.createElement('script'),
f = document.getElementsByTagName('script')[0];
j.textContent = source;
f.parentNode.insertBefore(j, f);
f.parentNode.removeChild(j);
}
Затем вы можете сделать:
function getJSvar(whichVar) {
document.body.setAttribute('data-'+whichVar,whichVar);
}
inject('(' + getJSvar.toString() + ')("somePageVariable")');
var pageVar = document.body.getAttribute('data-somePageVariable');
Обратите внимание, что если переменная представляет собой сложный тип данных ( object, array ...), вам нужно будет сохранить значение в виде строки JSON в getJSvar (), и JSON.parse вернуть его в свой скрипт контента.
Я только что погуглил . Существует пакет Mako .
Я установил его в папке ~ / Library / Application Support / TextMate / Bundles /
вот так:
cd ~/Library/Application\ Support/TextMate/Bundles/ svn co http://svn.makotemplates.org/contrib/textmate/Mako.tmbundle
В TextMate я сделал Связки | Редактор пакетов | В меню появились Reload Bundles
и Mako
.
Он добавляет новый вариант языка HTML: HTML (Mako)
, фрагменты и тому подобное.
Надеюсь, это поможет.
Клаудио,
Я не использую шаблоны мако, но быстрый поиск в Google дал эту статью из группы google мако-обсуждение, которая относится к Подсветка синтаксиса библиотеки Colorer. Похоже, это может быть для вас неплохим зацепкой.
-matt
В итоге я назвал свои шаблоны Mako суффиксом .html и, таким образом, получил обычную подсветку синтаксиса HTML и т. Д., К которой я привык. В качестве альтернативы я мог бы связать суффикс .mako с обработчиком HTML. Хотя это не касается конкретно Mako, мне этого было достаточно, поскольку я считаю, что большая часть шаблона в любом случае представляет собой простой HTML.