Внедрить многострочный JS в тритий
У меня есть фрагмент javascript, который мне нужно вставить на каждую страницу, чтобы активировать аналитику Google. Я пытался использовать инъекцию и продолжаю получать ошибки:
inject("// load ga.js if it doesn't exist
if (!window._gat) {
var ga = document.createElement("script"); ga.type = "text/javascript"; ga.async = true;
ga.src = ('https:' == document.location.protocol ? "https://ssl" : "http://www") + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(ga, s);
};")
Как лучше всего подойти к этой проблеме с тритием?
1 ответ
inject()
Кажется, функция преобразует строку в HTML, а затем помещает ее в текущий узел. Поскольку ваша строка - JS, а не правильный HTML, генерируются всевозможные ошибки.
Вместо этого вы можете использовать тритий insert_javascript()
Функция, описанная в документации по адресу: http://tritium.io/current#XMLNode.insert_javascript(Text%20%25js).
insert_javascript()
также заключает строку в теги CDATA, так что вам не нужно беспокоиться о кодировке символов HTML и тому подобном.
Вот пример того, как это может работать в вашем случае: http://tester.tritium.io/7532c4e18619051c5736a0ad990e4a33b1b3f00f