Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从iFrame获取内部html_Javascript_Html_Iframe - Fatal编程技术网

Javascript 从iFrame获取内部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

我有一个函数,用于计算网页(来自同一个域)上每个单词的出现次数。我读过很多关于获取iframe的innerhtml的帖子,但是我认为我误解了,因为这不起作用,只是给了我一个空字符串。TagID是我要将这些项目添加到的HTML文档中的位置

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加载。见这个问题: