После ajax не работаюет
Помогите мне пожалуйста. Подобные вопросы уже читал но не смог разобраться в чём дело. Сам скрипт который загружает страницы в div с id printResult:
<script type="text/javascript">
function startAjax(url){
$('#printResult').html('ghfghgfh');
var request;
cache: false;
if(window.XMLHttpRequest){
request = new XMLHttpRequest();
} else if(window.ActiveXObject){
request = new ActiveXObject("Microsoft.XMLHTTP");
} else {
return;
}
request.onreadystatechange = function(){
switch (request.readyState) {
case 4:{
if(request.status==200){
document.getElementById("printResult").innerHTML =' '+request.responseText+' ';
}else if(request.status==404){
relogin(onSuccess);
}
break
}
}
}
request.open ('GET', url, true);
request.send ('');
}
function print_console(text){
document.getElementById("console").innerHTML += text;
}
</script>
А вот в самих страницах есть скрипты и пути к js файлам которые не работают, даже если файлы js ставить вне div. Например содержание страницы к примеру такое:
<link href="./vendor/bootstrap-select/dist/css/bootstrap-select.min.css" rel="stylesheet">
<div class="form-group">
<label>Mutiple select list (hold shift to select more than one):</label>
<select multiple class="form-control default-select" id="sel2">
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
</select>
</div>
<script src="./vendor/global/global.min.js"></script>
<script src="./vendor/bootstrap-select/dist/js/bootstrap-select.min.js"></script>
<script src="./js/custom.min.js"></script>
<script src="./js/deznav-init.js"></script>
Думал что не совпадают пути .js и .css , но оказалось не то.. Или еще проще:
<script type="text/javascript">
alert('Ok!');
</script>
И он не срабатывает..
Помогите пожалуйста. Спасибо!
Ответы (1 шт):
Автор решения: Laukhin Andrey
→ Ссылка
Вы не сможете выполнить скрипты через innerHTML.
Возможные варианты:
- Использовать JQuery:
$('#printResult').html(request.responseText) - Написать свою функцию для поиска скриптов в responseText и добавления в DOM или выполнения кода (
eval()) - Разделить/структурировать загрузку HTML и скриптов. На мой взгляд, это более правильный с точки зрения архитектуры приложения вариант.