Я пытаюсь использовать Polymer в расширении хром. Общая цель состоит в том, чтобы использовать инкапсуляцию стиля, поэтому мои скрипты содержимого изолируются от CSS просматриваемой страницы.Полимер в сценарии содержимого Chrome Extension
Начиная с пользовательским элементом в моем-element.html
Я использую вулканизацию как так:
vulcanize -o build.html my-element.html
Если я пытаюсь что-то подобное в моем содержании сценарии:
// content_script.js
$.get(chrome.extension.getURL('build.html'), function(data) {
var html = document.createElement('div');
html.innerHTML = data;
document.body.appendChild(html);
var custom = document.createElement('my-element');
document.body.appendChild(custom);
});
build.html загружает нормально, но мой-элемент не работает. Он просто создает пустой тег без какого-либо моего теневого содержимого DOM.
я вижу пару потенциальных проблем с тем, что я делаю:
- Я погрузочные полимерный материал в DIV. Нужно ли его загружать непосредственно в тело? Если да, то как это делается?
- Я предполагаю, что загрузка build.html с ajax будет работать в первую очередь. Это неверное предположение?
Любопытно: почему вы используете Полимер в удлинителе Chrome? Так как это Chrome, не могли бы вы просто использовать пользовательские элементы и теневую DOM из коробки? – MaxArt
Да, я мог бы, и если это произойдет, я попробую это дальше, но Полимер добавляет много сахара и приятных для использования. И я полагаю, что имеет смысл изучать полимер, поскольку это более готовое производство, где родные веб-компоненты по-прежнему, возможно, являются выходками. – anderspitman
Существует замечательная хромированная ошибка, которая запрещает регистрацию содержимого скриптов пользовательским элементам: https://code.google.com/p/chromium/issues/detail?id=390807 – ebidel