Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Include html файла по клику (https://javascript.ru/forum/dom-window/67837-include-html-fajjla-po-kliku.html)

Exhaust_ 11.03.2017 02:38

Include html файла по клику
 
Как подгрузить файл k1.html в <div id="k"></div> после клика по ссылке?

При следующем клике по ссылке загрузить под файлом k1.html файл k2.html
Так 16 раз, после чего ссылка должна исчезнуть.

Буду признателен за помощь, а также частичные решения (например, отдельно загрузка файла или ограничение количества кликов по ссылке).

Diphenyl Oxalate 11.03.2017 04:56

<div id="k">
</div>
<a href="javascript://" onclick="loadpage(this);">Загрузить</a>
<script type="text/javascript">
    var counter = 1;
    function loadpage(a) {
        if (counter == 16) a.parentNode.removeChild(a);
        var xhr = new XMLHttpRequest();
        xhr.onreadystatechange = function () {
            if (xhr.readyState != 4 || xhr.status != 200) return;
            var page = document.createElement("DIV");
            page.innerHTML = xhr.responseText;
            document.getElementById("k").appendChild(page);
        };
        xhr.open("GET", "/k" + counter++ + ".html", true);
        xhr.send(null);
    }
</script>

Exhaust_ 11.03.2017 09:13

Классно, но есть одна проблема. Как разместить несколько таких блоков на одной странице? В коде ниже когда я кликаю по первой ссылке, загружается файл k1.html, когда по второй i2.html, когда снова по первой - k3.html, а нужно k2.html.

<div id="k">
</div>
<a href="javascript://" onclick="loadpagek(this);">Загрузить</a>
<script type="text/javascript">
    var counter = 1;
    function loadpagek(a) {
        if (counter == 16) a.parentNode.removeChild(a);
        var xhr = new XMLHttpRequest();
        xhr.onreadystatechange = function () {
            if (xhr.readyState != 4 || xhr.status != 200) return;
            var page = document.createElement("DIV");
            page.innerHTML = xhr.responseText;
            document.getElementById("k").appendChild(page);
        };
        xhr.open("GET", "k" + counter++ + ".html", true);
        xhr.send(null);
    }
</script>

<div id="i">
</div>
<a href="javascript://" onclick="loadpagei(this);">Загрузить</a>
<script type="text/javascript">
    var counter = 1;
    function loadpagei(a) {
        if (counter == 12) a.parentNode.removeChild(a);
        var xhr = new XMLHttpRequest();
        xhr.onreadystatechange = function () {
            if (xhr.readyState != 4 || xhr.status != 200) return;
            var page = document.createElement("DIV");
            page.innerHTML = xhr.responseText;
            document.getElementById("i").appendChild(page);
        };
        xhr.open("GET", "i" + counter++ + ".html", true);
        xhr.send(null);
    }
</script>

Diphenyl Oxalate 12.03.2017 03:17

Счётчик-то один (var counter).
Во втором скрипте надо изменить название, например, на counter2.


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