根据$ .ajax的jQuery文档,“插入DOM时会评估包含的脚本标记。”当我使用ajax来获取对话框的内容时,该对话框又包含用于显示ReCaptcha框的脚本标记,当添加到DOM时,ReCaptcha框不会出现。根据FireBug,添加的内容现在也缺少脚本标记。直接导航到对话框内容显示ReCaptcha就好了。
有谁知道为什么会出现这种情况和/或知道解决方法?任何帮助将不胜感激。
可以在此处查看代码:
然后点击“立即注册”。
答案 0 :(得分:2)
脚本是否尝试执行document.write()之类的操作?只有在初始页面加载时才会动态加载。
通常,HTML中包含的innerHTML'd脚本不会在浏览器中进行一致的评估。为了解决这个问题,jQuery实际上会查找脚本标记并手动执行它们。
但这并不重要。即使jQuery没有这样做,脚本也会运行在与第一次加载页面时通常不同的上下文类型中。它不再是一个“内联脚本”,并且很多第三方脚本都是以“内联”作为假设编写的。你必须弄清楚脚本在做什么,并找到一种方法来用动态内容来调用它。
答案 1 :(得分:1)
看看Google reCAPTCHA AJAX API。使用CAPTCHA这种方式可以解决您的问题。
我希望它有所帮助!