2011-01-23 1 views
0

Строки:responseText содержит код яваскрипта и код не загружает

<script type="text/javascript" src="http://www.google.com/recaptcha/api/challenge?k=6..."></script> 

приходит из запроса XMLHttpRequest(), и генерируется PHP, а затем записывается в новое окно с Javascipt, но скрипт не загружен. Окно открывается пустым, несмотря на то, что исходный код содержит эту строку.

Это может быть проблема с кодировкой?

Строка является результатом 'echo recaptcha_get_html ($ publickey)', где функция PHP предоставляет сценарий recaptcha.

+3

Можете ли вы добавить ссылку на пример или что-то еще и, возможно, переписать заголовок вопроса? Это не так много, чтобы идти прямо сейчас! –

+0

Вы уверены, что это не рассматривается как текст вместо источника HTML? Возможно, вы делаете что-то вроде 'newWindow.appendText (response)' вместо 'newWindow.appendHTML (response)'? – Crozin

+0

Я делаю win.document.getElementById ("main"). InnerHTML = xmlhttp.responseText; – user583311

ответ

1

Создание тегов сценариев путем установки .innerHTML, как правило, не приведет к выполнению этих скриптов. Существуют исключения, такие как наличие атрибута «отсрочка», установленного в теге скрипта в браузерах IE, но обычно это, вероятно, не путь. (Я не уверен, что бы сделал атрибут «async». Я мог видеть async = «true», в результате чего скрипты создавались таким образом, но я этого не тестировал.)

Что бы полностью работало, createElement («script»), затем установите на него .src и запишите его где-нибудь в DOM. Он загрузит не только его и запустит, но во многих случаях он сделает это асинхронно (по сравнению с обычными сценариями, блокирующими остальную нагрузку на страницу), что обычно лучше.

+0

Не работает с async = false. Я не могу создать createElement («script»), потому что получаю html-код из «echo recaptcha_get_html ($ publickey)». Какой еще метод вставки можно использовать, кроме innerHTML? – user583311

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

  • Нет связанных вопросов^_^