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, время: 22:24. |