Javascript 从iFrame获取内部html
我有一个函数,用于计算网页(来自同一个域)上每个单词的出现次数。我读过很多关于获取iframe的innerhtml的帖子,但是我认为我误解了,因为这不起作用,只是给了我一个空字符串。TagID是我要将这些项目添加到的HTML文档中的位置Javascript 从iFrame获取内部html,javascript,html,iframe,Javascript,Html,Iframe,我有一个函数,用于计算网页(来自同一个域)上每个单词的出现次数。我读过很多关于获取iframe的innerhtml的帖子,但是我认为我误解了,因为这不起作用,只是给了我一个空字符串。TagID是我要将这些项目添加到的HTML文档中的位置 function filereader(tagID) { var x = document.getElementById(tagID); var newFrame = document.createElement("iframe"); n
function filereader(tagID) {
var x = document.getElementById(tagID);
var newFrame = document.createElement("iframe");
newFrame.id = "pageinframe";
newFrame.src = document.getElementById("pagetoread").value;
x.appendChild(newFrame);
var innerDoc = document.getElementById("pageinframe");
var innerDocContent = innerDoc.contentDocument.body.innerHTML;
console.dir(innerDocContent);
var split = innerDocContent.split(" "), obj = {};
var y = document.createElement("p");
for (var x = 0; x < split.length; x++) {
if(obj[split[x]] == undefined) {
obj[split[x]] = 1;
}
else {
obj[split[x]]++;
}
}
console.dir(obj);
for (var i= 0; i < obj.length; i++) {
var toadd = document.createTextNode(obj[i]);
y.appendChild(toadd);
}
var x = document.getElementById(tagID);
x.appendChild(y);
}
函数文件读取器(tagID){
var x=document.getElementById(tagID);
var newFrame=document.createElement(“iframe”);
newFrame.id=“pageinframe”;
newFrame.src=document.getElementById(“pagetoread”).value;
x、 appendChild(newFrame);
var innerDoc=document.getElementById(“pageinframe”);
var innerDocContent=innerDoc.contentDocument.body.innerHTML;
console.dir(innerDocContent);
var split=innerDocContent.split(“”),obj={};
var y=document.createElement(“p”);
对于(变量x=0;x
您正在动态创建iframe并为其分配一个源,然后您希望内容立即可用—很可能不会。您应该为iframe使用加载事件处理程序,并从中读取内容。您可能需要等待iframe加载。见这个问题: