2015-09-03 3 views
0

У меня проблема с моей функцией. Как только я распечатаю страницу из XMLHttpRequest с сервера php с уникальной ссылкой, он не распознает скрипты, которые находятся на странице на стороне сервера php. он говорит о неопределенных функциях в JQuery.Ошибка JavaScript HttpRequest

спасибо.

if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari 
 
    xmlhttp = new XMLHttpRequest(); 
 
} else { // code for IE6, IE5 
 
    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
 
} 
 
xmlhttp.onreadystatechange = function() { 
 
    if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { 
 
     var iDiv = document.createElement('div'); 
 
     iDiv.id = '22'; 
 
     iDiv.className = '2323'; 
 
     iDiv.innerHTML = xmlhttp.responseText; 
 
     iDiv.innerHTML += '<script type=\"text/javascript\" src=\"https://d3v2hnl706774i.cloudfront.net/html/iframeResizer.min.js\"></script>'; 
 
     iDiv.innerHTML += '<script type=\"text/javascript\">iFrameResize({log: false,enablePublicMethods: true,enableInPageLinks: true,minHeight: 300});</script>'; 
 
     document.getElementsByTagName('body')[0].appendChild(iDiv); 
 
     thisScriptElement.parentNode.insertBefore(iDiv, thisScriptElement); 
 
     thisScriptElement.parentNode.removeChild(thisScriptElement); 
 
    } 
 
} 
 
xmlhttp.open("GET", theUrl, true); 
 
xmlhttp.send(null); 
 
}

+0

хорошо я вижу, но как я могу вставить RVal() для моего кода, я не понимаю, как это сделать. вы можете мне помочь? –

+0

Что такое RVAL() и где он теперь идет? – mplungjan

+0

У меня есть anser здесь: http://stackoverflow.com/questions/4619668/executing-script-inside-div-retrieved-by-ajax ответ функция javascript call rval(), но я не что мне нужно вставить в мой код –

ответ

0

Это потому, что innerHTML не запускать скрипты.

Вы должны добавить их к голове страницы

Попробуйте

if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { 
    var iDiv = document.createElement('div'); 
    iDiv.id = '22'; 
    iDiv.className = '2323'; 
    iDiv.innerHTML = xmlhttp.responseText; 
    document.getElementsByTagName('body')[0].appendChild(iDiv); 
    var s1 = document.createElement("script"); 
    s1.src="https://d3v2hnl706774i.cloudfront.net/html/iframeResizer.min.js"; 
    document.getElementsByTagName('head')[0].appendChild(s1); 
    setTimeout(function() { iFrameResize({log: false,enablePublicMethods: true,enableInPageLinks: true,minHeight: 300})},100); 
} 

Или, так как вы помечены JQuery, смотрите в getScript

+0

Извините, я снова объясню свою проблему, Функция печатает данные точно так, как предполагалось, но внутри данных есть больше функций jQuery, которые импортируют больше данных с помощью функции OnClick. Как только я нажимаю на список внутри данных, я получаю функцию undefind –

+0

спасибо, что я понял, что это так, спасибо за помощь –

Смежные вопросы