jessepinkman010101
@jessepinkman010101
Варю синий код

Как подключить (аналог php include) html файл в js?

Добрый день!
Есть 2 страницы
-> index.html
-> hello.html

В index.html мне нужно с помощью js после секции .top-section вставить содержимое hello.html. Это можно сделать на php за 20 секунд, но у меня ситуация несколько не стандартная и по этому приходится делать так:

Создать php файл допустим my.php
с помощью js делать ajax запрос

js
$.ajax({
                url: 'my.php',
                type: 'POST',
                dataType: 'json',
                success: (data) => {
                          $('.top-section').after().append(data.html);
                }
            });


my.php

ob_start();
        include 'hello.html';
        $view = ob_get_clean();
        ob_end_flush();

        echo json_encode([
            'html' => $view
        ]);



Но такой способ мне кажется ужасным.. неужели нет другого способа, например через js напрямую получить hello.html ?
Так же iframe работает, но мне не подходит из-за модалок.

Помогите пожалуйста
  • Вопрос задан
  • 402 просмотра
Решения вопроса 3
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
const sectionHtml = await fetch('hello.html');
document.querySelector('.top-section').innerHTML += await sectionHtml.text();
Ответ написан
Комментировать
Stalker_RED
@Stalker_RED
Jesse Pinkman, если вы хотите сделать это из браузера, то в любом случае браузеру нужно сделать запрос, через xhr или fetch. И нет, встроенной такой опции нет, разве что iframe.
Что "ужасного" в вашем способе?

Можете вынести запрос в отдельную функцию, и вызывать в нужном месте, типа
insertHtml('#target_block', '/hello.html')
передавая только селектор блока или блок, в который нужно вставить, и url фрагмента.

Есть и готовые скрипты такого рода, тот-же includeHTML от xmoonlight
Ответ написан
zkrvndm
@zkrvndm
Архитектор решений
Если на сайте подключен jQuery, то просто используйте метод load, чтобы вставить HTML файл внутрь нужного вам блока:
https://basicweb.ru/jquery/jquery_method_load.php

Пример:
$('.top-section').load('hello.html');
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы