XmlHTTPRequest с подгрузкой JavaScript
как можно вместе с html подгрузить и js которые будет обрабатывать события и тд. и возможно ли это вообще?
страницы подгружаю таким кодом function newContent(link,target) { /* link - URL адрес подгружаемой страницы target - DIV в который мы подгружаем контент */ var contaner = document.getElementById(target); contaner.innerHTML = 'Загрузка ...'; var resource = getRequest(); if( resource ) { resource.open('get',link); resource.onreadystatechange = function () { /*Получаем значение, указывающее текущее состояние элемента управления*/ if(resource.readyState == 4) { contaner.innerHTML = resource.responseText; } } resource.send(null); } else { document.location = link; } } /* Функция для получения метода для работы с браузерами */ function getRequest(){ try { return new XMLHttpRequest() } catch(e) { try { return new ActiveXObject('Msxml2.XMLHTTP') } catch(e) { try { return new ActiveXObject('Microsoft.XMLHTTP') } catch(e) { return null; } } } } |
Возможно, используя eval либо создавая элемент <script> и добавляя его в документ. Но такие манипуляции свидетельствуют о кривых руках разработчика и непродуманной архитектуре.
|
danik.js,
на криворукость мне все равно,главное что бы работало. сейчас решил вот таким способом воспользоваться var txt = resource.responseText.split ('###'); // делите полученную строку символов по разделителю ### contaner.innerHTML = txt [1]; // первую часть "набора символов" записываете как текст в нужный контейнер var y = document.createElement ('script'); // cоздаёте новый тег <SCRIPT> y.defer = true; // даёте разрешение на исполнение скрипта после его "приживления" на странице y.text = txt [0]; // записываете вторую часть полученного от сервера "набора символов" как JS-код document.body.appendChild (y); // "приживляете" созданный тег <SCRIPT> тоесть пишем сначала js код, отделяем его текста таким символом ### остается вопрос как должен выглядеть php файл который подгружаю. не просто же его сделать вида js код###html код |
Можно обойтись без танцев с решеточками.
Так и оставить теги <script> вместе с html. После вставки html в элемент ищем все теги <script> внутри него и переносим их в <head> |
что то у меня не получается ничего рабочего написать(я только начал осваивать js) потому могу заплатить тому кто поможет написать рабочий код который будет нормально подгружать страницу с работающим js кодом
|
Часовой пояс GMT +3, время: 15:40. |