Импорт/изменение содержимого HTML (после обновления ES6)

Я пытался динамически изменять содержимое моей HTML-страницы, импортируя внешние HTML-файлы. Я нашел способ сделать это с помощью импорта HTML, но, если я правильно понял, эта функция устареет из-за обновления ES6. Из того, что мне удалось найти в Интернете, может быть альтернативный способ сделать это с помощью модулей javascript, но я не могу найти ничего конкретного.

Я хочу изменить большую часть страницы (окно, содержащее форму, становится окном, демонстрирующим пользовательскую статистику), поэтому использование .innerHTML в javascript не кажется разумным. У кого-нибудь есть хорошие идеи о том, как импортировать файлы html или динамически изменять содержимое страницы? (используя javascript, узел и т. д.)

Любая помощь очень ценится :)

Здесь у вас есть Отличная документация MDN о веб-компоненте. Можно ли выбрать фреймворк (Angular, vue.js, реагировать)? Потому что все эти фреймворки созданы для быстрого и последовательного создания динамических веб-приложений.

dun32 06.02.2019 16:51

Возможный дубликат Как упаковать или импортировать Html-шаблоны без Html-Imports

Supersharp 07.02.2019 00:48

или stackoverflow.com/q/52435955/4600982

Supersharp 07.02.2019 00:48

@Supersharp Спасибо за ответы. Сейчас я использую: $('#form-container').load('login-form.html'); И, похоже, он работает. Есть ли у этого метода какие-либо недостатки, которые могут сделать ваши предложения более жизнеспособными?

August Tengland 07.02.2019 11:41

@ dun32 Спасибо за ответ. У меня нет практики работы с фреймворками, и для этого проекта я не думаю, что у меня есть время вникать в него. Внедрение html-контента даже не является обязательным, но я хотел бы сделать это как побочный проект (основное внимание уделяется хранению данных в mysql и созданию какого-то веб-сайта).

August Tengland 07.02.2019 11:45

@AugustTengland Вы используете jQuery, который является своего рода оболочкой для функций utils. Vanilla JS всегда более жизнеспособна, чем любая сторонняя библиотека, но это очень личное мнение.

Supersharp 07.02.2019 15:41

@Supersharp Хорошо, кажется, я понял. В этом проекте я пойду по простому пути и буду придерживаться jQuery, но учту ваши слова в будущем.

August Tengland 09.02.2019 12:04
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
7
408
1

Ответы 1

Я немного опоздал, и ответ уже был связан с комментариями к этому вопросу, но я все равно иду.

Вы должны иметь возможность использовать Ajax для получения содержимого файла html. (как строка) С содержимым html-файла вы сможете разобрать его в htmlDoc в JS (например, глобальный document из document.getElement и т. д.), используя класс DOMParser.

https://developer.mozilla.org/en-US/docs/Web/API/DOMParser

https://codepen.io/Deefoozy/pen/PeYWge

После синтаксического анализа html в htmlDocument вы сможете получить тело через результат, используя .getElement или .body.children. Результатом этого должен быть простой domNode, который вы можете добавить к другому domNode.

Спасибо за ответ и извините за еще более поздний ответ. В итоге я переключился с простого HTML на EJS и использовал res.render() в узле для передачи некоторых данных. Затем я использую эти данные в сочетании с функцией включения EJS для импорта различных частей веб-страницы. У меня это сработало нормально, но если цель состоит в том, чтобы использовать простой HTML, то ваше решение, вероятно, является хорошим способом.

August Tengland 31.03.2019 22:01

Другие вопросы по теме