Теги скрипта, содержащиеся в ответе jQuery AJAX, не оцениваются при вставке в DOM? - PullRequest
1 голос
/ 05 ноября 2011

Согласно документации jQuery для $ .ajax, «включенные теги сценария оцениваются при вставке в DOM.».Когда я использую ajax для захвата содержимого диалогового окна, которое, в свою очередь, содержит тег сценария для отображения поля ReCaptcha, поле ReCaptcha не появляется при добавлении в DOM.Согласно FireBug, тег script теперь также отсутствует в добавленном контенте.При переходе непосредственно к содержимому диалога ReCaptcha отображается очень хорошо.

Кто-нибудь знает, почему это может происходить, и / или знает, как это обойти?Любая помощь будет принята с благодарностью.

Код в действии можно посмотреть здесь:

https://dustinhendricks.com/

Затем нажмите «Зарегистрироваться сейчас».

Ответы [ 2 ]

2 голосов
/ 05 ноября 2011

Сценарий пытается сделать что-то вроде document.write ()?Это не будет работать при динамической загрузке, только при начальной загрузке страницы.

Как правило, скрипты, содержащиеся в HTML, который является innerHTML'd, не оцениваются согласованно во всех браузерах.Чтобы это исправить, jQuery фактически ищет теги сценария и выполняет их вручную.

Но это не имеет значения.Даже если jQuery этого не сделает, скрипт будет работать в другом типе контекста, чем обычно, когда страница загружается в первый раз.Это больше не «встроенный скрипт», и многие сторонние скрипты были написаны как «встроенные» в качестве предположения.Вам нужно выяснить, что делает скрипт, и найти способ вызвать его с помощью динамического контента.

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

Взгляните на Google reCAPTCHA AJAX API . Использование CAPTCHA таким способом должно решить вашу проблему.

Надеюсь, это поможет!

...