Аякс.Как вызвать код JavaScript из запрошенного файла HTML - PullRequest
0 голосов
/ 07 июня 2011

У меня есть страница index.html .

Внутри этой страницы у меня есть код JavaScript, который делает кнопку для вызова ajax-запроса на other.html длябыть показано внутри div в index.html .

other.html не имеет ничего, кроме div (который содержит содержимое) и некоторый код JavaScript.

other.html обычно загружается внутри index.html , но код javascript не работает.

Кто-нибудь знает, почему это происходит?

Спасибо.

(код javascript так же прост, как предупреждение ("привет") сообщение).

код:

index.html:

<html>
<head>
<script src=main.js></script>
</head>

<body>
<div id="to_change">bla bla bla</div>
<div id="button">click me</div>
</body>
<html>

main.js:

...
...
function sendRequest()
{
    request.open("GET","other.html",true);
    request.onreadystatechange = function(){
        if(request.readyState == 4 && request.status == 200){

            var response = request.responseText;

            if(response) {
                document.getElementById("to_change").innerHTML = response;
            }
        }
    }
    request.send(null);
}

....button.click(...sendRequest...);
...
...

other.html

<script type=...>alert("hello");</script>
<div>text text text text</div>

Ответы [ 3 ]

0 голосов
/ 07 июня 2011

Обязательно удалите вложенные теги '<doctype...>', '<html>' и '<body>' из файла "other.html", если они есть.

0 голосов
/ 07 июня 2011

Вы можете попробовать запустить сценарии вручную:

// ...
if (response) {
  var toChange=document.getElementById("to_change"), scripts, i;
  toChange.innerHTML = response;
  scripts = toChange.getElementsByTagName('script');
  for (i=0; i<scripts.length; i++) {
    eval(scripts[i].innerHTML);
  }
}

Конечно, eval - это зло , поэтому используйте на свой страх и риск ...

0 голосов
/ 07 июня 2011

JavaScript загружается, но вызов функции не происходит.

Вы не вызываете функции ни при каких событиях.

<BODY onLoad="alert('hello world!')">

Вот так попробуйте вызвать функцию.На любое событие вы хотите

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...