给定 HTML 文件的 URL 地址,如何读取内容

given a url address of a html file, how to read the content?

本文关键字:读取 何读取 文件 HTML URL 地址 给定      更新时间:2023-09-26

我需要做一些简单的事情,

我有canvas.html

<div id="dialog" title="Basic dialog">
  <p>Something.</p>
</div>

现在我想阅读canvas.html的内容

function LoadPage(href)
{
    var xmlhttp = new XMLHttpRequest();
    xmlhttp.open("GET", href, false);
    xmlhttp.send();
    return xmlhttp.responseText;
}
...
var canvasPanelURL = "myfolder/canvas.html";
var content = LoadPage(canvasPanelURL);
..

上面的代码是正确的。

可悲的是,XMLHttpRequest被弃用,我想使用 FileReader 但输入是 blob,还有其他方法可以做到这一点而不是使用 XMLHttpRequest

编辑

感谢您的评论,同步XMLHttpRequest已被弃用,我只想知道是否有任何其他选择在给定 url 的情况下读取 html 文件(我应该说,这个问题与XMLHttpRequest松散相关)

不幸的是,

主线程(即运行 javascript 的请求)上的同步请求已被弃用。

注意:从 Gecko 30.0(Firefox 30.0/Thunderbird 30.0/SeaMonkey 2.27)开始,由于对用户体验的负面影响,主线程上的同步请求已被弃用。

但是,您仍然可以使用 Web 辅助角色运行同步 Web 请求。

使用 Web worker 的替代方法是在异步请求的回调中进行处理

function LoadPage(href, cb)
{
    var xmlhttp = new XMLHttpRequest();
    xmlhttp.open("GET", href, true);
    request.onload = function() {
        if (request.status >= 200 && request.status < 400) {
            cb(request.responseText);
        }
    };
    xmlhttp.send();
}
var canvasPanelURL = "myfolder/canvas.html";
LoadPage(canvasPanelURL, function(content) {
    // do stuff with content
});

然后,您可以手动创建FileReader,因为您可以从条目数组(在本例中为 1)创建Blob。我不能说如果你已经使用 AJAX 加载了你的 html 文件,我能明白你为什么要这样做。

var blob = new Blob([content]);
var reader = new FileReader();
reader.onloadend = function() {
    console.log(reader.result);
};
reader.readAsBinaryString(blob);