Либо я, либо Вы не поняли. простой клик типа: onclick="javascript: alert('OK');" срабатывает, но если вызовете функцию onclick="javascript:myFynk();" описанную на подгружаемой странице , она не работает
|
Manyasha, не следует использовать этот элемент не по назначению. Используйте вместо этого <iframe>.
vaisan, hyvää päivää!. Вам следует вставить элемент на страницу и выполнить скрипты function XHR(filename) { fetch(filename).then(function (response) { return response.text(); }).then(function(code) { var document = new DOMParser().parseFromString(code, "text/html"); return document.documentElement; }).then(function(documentElement) { var ds = document.getElementById("divSource"); ds.textContent = ""; ds.appendChild(documentElement); Array.from(documentElement.querySelectorAll("script")) .forEach(function(script) { setTimeout(eval, 0, script.textContent); }); }); }; vaisan, подход, который вы используете, имеет кучу проблем — если вы захотите завести состояние, то оно будет стираться из скрипта при каждой новой загрузке файла, и пр. Вам следует пересмотреть подход — например, с сервера загружать чистые данные (к примеру, массив с данными) и отрисовывать их на клиенте. Тогда у вас скрипт, который управляет приложением будет загружаться только один раз, и вы сможете иметь состояние приложения. |
Moi, professori Malleys
Paljon kiitoksia!!! Невероятно, но Ваш код сработал. Правильно ли я понимаю, что нужен двойной проход по загружаемому файлу: 1. загрузка только html элементов и затем 2. загрузка всех скриптовых и если нужны css, то 3. загрузка стилевых элементов Меня только немного смутила в Вашем коде чистка ds.textContent = ""; Разве при этом не удалится содержимое innerHtml/ |
vaisan, функция, которую я вам писал, загружает HTML-документ и помещает её на страницу (вместе со всеми картинками, скриптами, стилями и пр.). Всё применяется кроме скриптов, которые объявлены <script>-ом.
Поэтому после того, как документ помещён на страницу, там нужно найти все скрипты и выполнить их. (В примере сделано при помощи eval) Цитата:
Цитата:
Цитата:
Цитата:
|
Цитата:
|
Оказалось что срабатывает не
documentElement.children[0].style.backgroundColor = "#FFFFCC";//или documentElement.firstChild.style.backgroundColor = "#FFFFCC"; //children[0] = head, а этот код documentElement.children[1].style.backgroundColor = "#FFFFCC"; // children[1] = body |
Часовой пояс GMT +3, время: 04:02. |