从外部HTML文档中获取文本

时间:2015-02-09 15:49:00

标签: javascript html

我的目标是从HTML文档中获取文本,该文档不会调用.jsp文件中的任何函数。

我环顾四周,我认为我找到了问题的答案,但它似乎没有起作用,其他答案包括使用jQuery(我不熟悉并且不允许使用)。

到目前为止,这是我的代码:

function getText(divID) {
    var w = window.open("test.html");
    var body = w.document.body;
    var div = document.getElementById(divID);
    var textContent = body.textContent || body.innerText;
    console.log(textContent);

    //div.appendChild(document.createTextNode(textContent));
}

正如您所看到的,我正在尝试获取一个HTML文档的正文并将其显示在另一个HTML文档中。我在正确的轨道上吗?

编辑:好的,所以我似乎让我的问题很混乱。我在名为html.html的HTML文档中调用该函数,但我希望从test.html获取文本,然后将其显示在html.html中。它必须是这样的,因为我不能假设我想要读取的HTML文档将包含我的.jsp文件。

目前我收到以下错误。

  

未捕获的TypeError:无法读取未定义的属性“body”

1 个答案:

答案 0 :(得分:1)

另一个document.body windowundefined的原因是window,原因是其他onload尚未加载并呈现文档。

一种解决方案是等待function getText(divID) { var w = window.open("test.html"); w.addEventListener("load", function() { var body = w.document.body; var div = document.getElementById(divID); var textContent = body.textContent || body.innerText; console.log(textContent); }); } 事件。

getText

确保您在点击等用户事件上运行window.open功能,否则function getText(divID) { var xhr = new XMLHttpRequest(); xhr.onreadystatechange = function() { if (xhr.readyState == 4 ) { var body = xhr.response.body; var div = document.getElementById(divID); var textContent = body.textContent || body.innerText; console.log(textContent); } }; xhr.open("GET", "test.html", true); xhr.responseType = "document"; xhr.send(); } 将失败。

如果您只想获取其他窗口的内容,那么使用AJAX可能是更好的选择。

{{1}}
相关问题