AJAX - заменить javascript на странице: ajax не заменит javascript - PullRequest
0 голосов
/ 02 ноября 2011

Я пытаюсь заменить немного javascript на своей странице через AJAX, но по какой-то причине AJAX не заменит его ... Когда я использую:

    alert(document.getElementById('treintracking').innerHTML);

Я ясно вижу javascript из фрагмента сценария: (это начальная строка фрагмента javascript)

<script type="text/javascript" id="treintracking">

Для замены скрипта я использую это:

document.getElementById('treintracking').innerHTML = responseText;

Итак, почему AJAX не хочет заменить javascript? Я протестировал, и php-файл, используемый для генерации замещающего javascript, работает нормально. Я также учел, что в заменяемом javascript уже есть теги, поэтому я удалил их в файле php. Но это все равно не заменит содержание ...

Кроме того, если он вставит somefunction () в этот javascript, будет ли он работать, или я должен сделать что-то особенное?

Примечание: скрипт javascript генерируется в php-файле.

РЕШЕНИЕ : Я сейчас использую это внешнее решение, я понятия не имею, как оно работает, но оно работает отлично: http://www.javascriptkit.com/javatutors/loadjavascriptcss2.shtml [Я взял скрипт загрузки из источника страницы, как это не было в самой статье ...]

Ответы [ 2 ]

1 голос
/ 02 ноября 2011

Добавление JavaScript через innerHTML не оценивается.

Если вы хотите добавить новый код, просто установите источник в новый внешний файл JavaScript.

Таким образом, вместо использования Ajax-вызова, вы просто устанавливаете src

document.getElementById('treintracking').src = "new/path.php?a=b";

Другое решение [которого я бы избежал любой ценой] - eval().

0 голосов
/ 02 ноября 2011

Возможно, вам придется встроить новый javascript в функцию, которая может назначить новое содержимое другим функциям, а затем вызвать внешнюю функцию.Не будет ужасно красивым.

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