Как правило, вы получите ответ на запрос xmlhttp в виде чистого Javascript, а затем воспользуетесь функцией Javascript eval ():
function callback() {
var result = xmlHttp.responseText;
eval(result);
}
В этом случае вы бы НЕ рассматривали это как HTML. Вместо этого вы бы вернули чистый код. Разница:
Не делайте этого на своей странице, которую вы называете
<script type="text/javascript">
alert('xmlhttprequest loaded!');
</script>
Сделайте это вместо
alert('xmlhttprequest loaded!');
Так что, по сути, так и происходит:
function callback() {
var result = xmlHttp.responseText;
eval("alert('xmlhttprequest loaded!');");
}
Но вы не хотите, чтобы это произошло:
function callback() {
var result = xmlHttp.responseText;
eval("<script>alert('xmlhttprequest loaded!');</script>");
}
Есть некоторые проблемы, связанные с этим, например, eval может быть медленным. Google javascript eval, чтобы увидеть, что говорят другие.
=== РЕДАКТИРОВАТЬ ===
Использование метода DOM в отличие от xmlhttprequest фактически может быть тем, что нужно сделать оригинальному постеру, который динамически загружает код Google CAPTCHA.
<html>
<head></head>
<body>
<script type="text/javascript">
var head = document.getElementsByTagName('head')[0];
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = "http://google.com/captcha/location";
head.appendChild(script);
</script>
</body>
</html>
Кроме того, если вам нужно приземлиться где-нибудь, вы можете сделать что-то вроде:
<html>
<head></head>
<body>
<div id="captcha">
</div>
<script type="text/javascript">
var captcha = document.getElementById('captcha');
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = "http://google.com/captcha/location";
captcha.appendChild(script);
</script>
</body>
</html>