Выделение синтаксиса для Мако в Eclipse или TextMate?

Как объяснено частично в других ответах, переменные 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 вернуть его в свой скрипт контента.

12
задан That1Guy 5 May 2015 в 15:08
поделиться

3 ответа

Я только что погуглил . Существует пакет 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) , фрагменты и тому подобное.

Надеюсь, это поможет.

8
ответ дан 2 December 2019 в 21:24
поделиться

Клаудио,

Я не использую шаблоны мако, но быстрый поиск в Google дал эту статью из группы google мако-обсуждение, которая относится к Подсветка синтаксиса библиотеки Colorer. Похоже, это может быть для вас неплохим зацепкой.

-matt

2
ответ дан 2 December 2019 в 21:24
поделиться

В итоге я назвал свои шаблоны Mako суффиксом .html и, таким образом, получил обычную подсветку синтаксиса HTML и т. Д., К которой я привык. В качестве альтернативы я мог бы связать суффикс .mako с обработчиком HTML. Хотя это не касается конкретно Mako, мне этого было достаточно, поскольку я считаю, что большая часть шаблона в любом случае представляет собой простой HTML.

2
ответ дан 2 December 2019 в 21:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: