fetch() загрузка и скрытое событие
Имеется такой вопрос: на HTML странице есть элемент div в который загружается с помощью fetch() некий *.html файл с сервера, в котором имеются свои javascript функции по, например, блокировке/показу элементов этого *.html файла. У меня визуальное содержимое этого div меняется в соответствии с *.html файлом, НО почему-то javascript функции не работают, а браузер отладчик не видит ни скрипт, ни новую разметку внутри этого div.
|
vaisan, вместо долгих описаний лучше всего подходит простенький тестовый пример... ;)
|
Вложений: 1
Ещё не понял как присоединить файлы html
Поэтому zip Запуск index.html с сервера/localhost Интересующий скрипт находится в divContent.html |
Цитата:
[ HTML ]...[ / HTML ] Пробелы оставлены для показа... |
Цитата:
Придется тебе ждать другого человека или делать пример именно с fetch(), чего я собственно и ждал... |
vaisan, это собственно твое встраивание html "со скриптами"?
Цитата:
|
Цитата:
|
vaisan,
Пожалуйста, отформатируйте свой код! Для этого его можно заключить в специальные теги: js/css/html и т.п., например: [html run] ... минимальный код страницы с вашей проблемой [/html] О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting. |
vaisan, весь твой пример можно свести к этому
<div id='test'></div> <script type='text/javascript'> var txt='<script>alert("Ok")<\/script>'; txt+='<p>Test<\/p>'; document.getElementById('test').innerHTML = txt; </script> Так действительно скрипты не отработают... :no: Нужно создавать элемент script... Добавлять его соответствующим методом на страницу... Тогда скрипты будут работать. var o=document.createElement('script'); o.text = 'alert("Ok");'; document.getElementsByTagName('head')[0].appendChild(o); |
ksa, рони,
подскажите, пожалуйста, а чем плох тег object? Почему бы не сделать так: function XHR(filename) { var url = filename; document.getElementById("divSource").setAttribute("data", filename); /*fetch(url).then(function (response) {//response.json() response.text().then(function (text) { document.getElementById("divSource").innerHTML = text; }); });*/ }; <object id="divSource" style="margin: 20px 20px 10px 20px; height: 480px; width: 75%; overflow-y: auto;" type="text/html"></object> <!--div id="divSource" style="margin: 20px 20px 10px 20px; height: 480px; width: 75%; overflow-y: auto;"></div--> vaisan, попробуйте так, если есть возможность заменить div на object |
Часовой пояс GMT +3, время: 11:14. |