我是JavaScript的初学者,所以如果这是一个菜鸟问题,我很抱歉。我正在尝试使用XmlHttpRequest在被调用的HTML文件中使用JavaScript(例如RSS提要脚本)调用HTML文件(example.html)。调用的HTML文件(example.html)中的任何脚本都不会加载。它会加载被调用的HTML文件中的任何纯文本或超链接。我甚至尝试更改被调用的文件。例如,使用“rssfeeder.js”切换“example.html”以查看它是否按需加载JavaScript,但仍然无效。同样,我是JavaScript的新手,所以请详细说明你的答案。谢谢!这是我正在使用的脚本:
var receiveReq = getXmlHttpRequestObject();
function Example() {
if (receiveReq.readyState == 4 || receiveReq.readyState == 0) {
receiveReq.open("GET", 'example.html', true);
receiveReq.onreadystatechange = handleExample;
receiveReq.send(null);
}
}
function handleExample() {
if (receiveReq.readyState == 4) {
document.getElementById('span_result').innerHTML = receiveReq.responseText;
}
}
答案 0 :(得分:2)
浏览器不会自动运行XHR结果的结果。如果您知道自己正在获取javascript并希望自动运行,请尝试将其作为脚本元素包含在内:
document.body.appendChild(document.createElement('script')).src="example.js";
如果页面实际上是带有一些javascript函数的html,那么在设置innerHTML
后按名称调用该函数。
如果脚本是没有定义任何函数的匿名脚本块,那么您可以尝试执行以下操作:
var myscripts = document.getElementById('span_result').getElementsByTagName('script');
for (var i in myscripts) {
eval(myscripts[i].innerHTML);
}