Я разрабатываю расширение Chrome и пытаюсь вставить большое количество HTML и CSS в веб-страницу при нажатии кнопки действия браузера.
Пока у меня есть рабочий тест версия, но это беспорядок, и я хочу очистить его.
В настоящее время фоновый файл. js вызывает файл содержимого. js файл для запуска, передавая ему сообщение при действии браузера нажата. Файл content. js содержит функцию, которая затем вызывается. Затем он генерирует HTML и CSS с помощью таких команд, как:
function buildExtensionUI() {
var myDiv = document.createElement("div");
myDiv.id = "myDiv";
myDiv.style.position = "fixed";
}
Этот div также содержит другие элементы div, текст, кнопки и т. Д. c. В настоящее время функция имеет около 100 строк кода javascript, аналогично тому, как показано выше для генерации HTML, присвоения им всех идентификаторов и стиля CSS, и я хочу добавить гораздо больше. Я протестировал код, который у меня есть, и сейчас он делает то, что мне нужно.
Однако я хочу извлечь код в HTML и CSS «шаблонные файлы», чтобы я мог работать с ними и редактировать их правильно. В конечном итоге это будет очень большое приложение, поэтому я хочу сделать это сейчас, прежде чем продвинуться дальше.
Я много гуглил и пока не нашел работающего решения. Я создал файл шаблона HTML - например:
<template>
<div id="myDiv">
<div id="closeButton">
×
</div>
<div id="centerDiv">
<h1 id="title">
My Title
</h1>
<h2 id="subTitle">
</h2>
<textarea name="textBox" id="textBox" cols="50" rows="4"></textarea>
<button type="submit" id="button">Submit</button>
</div>
</div>
</template>
и файл стиля. css, который ссылается на идентификатор файла HTML. HTML необходимо будет динамически обновлять с помощью Javascript, в конечном итоге также.
Можно ли создать переменную или объект Javascript, который загружает файл шаблона HTML, который затем может быть введен в веб-страница, когда пользователь активирует действие браузера? Можно ли это сделать в фоновом режиме. js, а затем отправить в качестве объекта / переменной для содержимого. js?
Какие есть еще возможные решения?
Любые вопросы, пожалуйста, задавайте, и я могу уточнить.
Спасибо.