Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Вставить страницу HTML со скриптами в другую страницу HTML со своими скриптами (https://javascript.ru/forum/dom-window/84342-vstavit-stranicu-html-so-skriptami-v-druguyu-stranicu-html-so-svoimi-skriptami.html)

Shovgenyuk 11.08.2022 14:44

Вставить страницу HTML со скриптами в другую страницу HTML со своими скриптами
 
Есть намерения создать web-приложение с главной страницей в которую должны вставлятся (внедряться) дочерные HTML-страницы (несколько).

Что то похоже на дэсктоп MDI-форму в которой открываются дочерные окна.

В качестве сервера будет использоваться Node js.

Дочерные страницы содержат скрипты js и работают отдельно, как самостоятельные. Главная страница также содержит свои скрипты js.

Вставка дочерных страниц в отдельный DIV на главной странице реализована через AJAX (рассматриваются другие возможные варианты).

При вставке возникла проблемма со скриптами дочерных страниц: как и куда их внедрять?
Также предвидится проблема с id name HTML-элементов: они могут совпасть в главной и одной из дочерных или в дочерных страницах.

Как альтернатива, рассматриваются iFrame, но не уверен что это будет удачное решение.

Посоветуйте как и на чем это реализовать?

voraa 11.08.2022 20:31

Цитата:

Сообщение от Shovgenyuk
Как альтернатива, рассматриваются iFrame, но не уверен что это будет удачное решение.

По-другому очень сложно, и не всегда возможно.
Одинаковые id в дочерних страницах - решения нет, кроме iframe.
Со скриптами тоже проблема - их надо выбирать из дочерних страниц и вставлять отдельно. Тут так же есть нерешаемая проблема совпадение имен глобальных переменных в дочерних страницах.

Aetae 12.08.2022 03:26

Просто взять и объединить абстрактные рандомные страницы - невозможно.

Если же страницы всё-таки не совсем рандоны, то конечная цель, очевидно, добиться невозможности конфликтов. Как - в каждом конкретном случае над смотреть отдельно.

Магического решения которое всё за вас порешает - не существует, всё придётся подгонять +- руками. Разработка должна была вестись изначально с расчётом на модульность.

Shovgenyuk 12.08.2022 13:08

Цитата:

Сообщение от Aetae (Сообщение 547381)
Разработка должна была вестись изначально с расчётом на модульность.


Разработка только начинается. Это мое второе приложение на Node js, до этого 15 лет писал только десктоп, поэтому в вебе я зеленый :)

Расчет на модульность - это как? Где копать?

Shovgenyuk 12.08.2022 13:13

Нарыл что это возможно через <object> и <embed>. Сделал несколько тестовых страниц, попробовал связь (вызов скриптов) между родительской и дочерной страницей. Вроде все работает.

Насколько это нормально?
Меня смущает, что никто из знатоков не посоветовал этот способ...

Aetae 12.08.2022 13:39

Цитата:

Где копать?
Гугли SPA.
Цитата:

Нарыл что это возможно через <object> и <embed>
Это тот же iframe, только в профиль.

Rise 12.08.2022 16:09

Цитата:

Сообщение от Shovgenyuk
должны вставлятся (внедряться) дочерные HTML-страницы (несколько).

Эти страницы с других сайтов?

Shovgenyuk 12.08.2022 22:21

Нет, это мои страницы, мною разрабатываемые и с моего сервера.

voraa 12.08.2022 22:41

Тогда тем более iframe.
Страницы с одного домена в iframe могут в случае необходимости взаимодействовать друг с другом.

Rise 13.08.2022 09:52

Shovgenyuk,
Здесь Express фреймворк для Node.js, здесь гайды по нему на MDN.


Часовой пояс GMT +3, время: 08:04.