XmlHttpRequest - JavaScript в запрашиваемом HTML-файле не загружается - PullRequest
1 голос
/ 29 декабря 2010

Я новичок в JavaScript, поэтому прошу прощения, если это нубский вопрос. Я пытаюсь использовать XmlHttpRequest для вызова HTML-файла (example.html) с JavaScript (например, скрипт RSS-канала) в вызываемом HTML-файле. Любые скрипты в вызываемом HTML-файле (example.html) не будут загружаться. Он будет загружать любой простой текст или гиперссылки в вызываемый HTML-файл. Я даже пытался изменить вызываемый файл. Например, переключите «example.html» с «rssfeeder.js», чтобы увидеть, будет ли загружаться JavaScript по требованию, но это все равно не работает. Опять же, я очень новичок в JavaScript, поэтому, пожалуйста, будьте подробны в своих ответах. Спасибо! Вот скрипт, который я использую:

           var receiveReq = getXmlHttpRequestObject();      
           function Example() {
               if (receiveReq.readyState == 4 || receiveReq.readyState == 0) {
                   receiveReq.open("GET", 'example.html', true);
                   receiveReq.onreadystatechange = handleExample; 
                   receiveReq.send(null);
               }            
       }
          function handleExample() {
              if (receiveReq.readyState == 4) {
           document.getElementById('span_result').innerHTML = receiveReq.responseText;
               }
          }

1 Ответ

2 голосов
/ 29 декабря 2010

Браузер не будет автоматически запускать результаты результата XHR.Если вы знаете, что получаете в результате javascript и хотите, чтобы он запускался автоматически, попробуйте вместо этого включить его в качестве элемента сценария:

document.body.appendChild(document.createElement('script')).src="example.js";

Если страница на самом деле является html с некоторыми функциями javascript, то вызовите функцию симя после того, как вы установите innerHTML.

Если сценарии являются анонимными блоками сценариев без каких-либо определенных функций, вы можете попробовать сделать что-то вроде:

var myscripts = document.getElementById('span_result').getElementsByTagName('script');
for (var i in myscripts) {
  eval(myscripts[i].innerHTML);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...