0

字符串:

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

来自 XMLHttpRequest() 请求,由 php 生成,然后用 javascipt 写入新窗口,但未加载脚本。尽管源代码包含该字符串,但该窗口打开为空白。

会不会是编码问题?

该字符串是 'echo recaptcha_get_html($publickey)' 的结果,其中是 recaptcha 脚本提供的 PHP 函数。

4

1 回答 1

1

通过设置 .innerHTML 创建脚本标签通常不会导致这些脚本被执行。也有例外,比如在 IE 浏览器的 script 标签上设置了“defer”属性,但通常这可能不是可行的方法。(我不确定“async”属性会做什么。我可以看到 async="true" 导致以这种方式创建的脚本工作,但我还没有测试过。)

完全可行的是 createElement("script"),然后在其上设置 .src,并将其填充到 DOM 的某个位置。它不仅会加载并运行它,而且在许多情况下,它会异步执行(相对于阻止页面加载其余部分的常规脚本标签),这通常会更好。

于 2011-01-23T16:58:02.480 回答