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