Javascript 不带Web服务器的静态HTML页面的动态获取

Javascript 不带Web服务器的静态HTML页面的动态获取,javascript,Javascript,在同一目录下有一个静态页面myapp/page.html和一个静态文件myapp/data.txt。我想从文件系统在浏览器中打开该页面,不使用web服务器,并获取myapp/data.txt文件的内容。应该可以定期重新加载该文件,以检查其内容是否更改 fetch('file:///myapp/data.txt“)由于某些安全错误而无法工作无法加载获取APIfile:///myapp/data.txt 作为图像加载img.src='data.txt'也不起作用,它加载的文件可以在“网络”选项卡中

在同一目录下有一个静态页面
myapp/page.html
和一个静态文件
myapp/data.txt
。我想从文件系统在浏览器中打开该页面,不使用web服务器,并获取
myapp/data.txt
文件的内容。应该可以定期重新加载该文件,以检查其内容是否更改

  • fetch('file:///myapp/data.txt“)
    由于某些安全错误而无法工作
    无法加载获取APIfile:///myapp/data.txt
  • 作为图像加载
    img.src='data.txt'
    也不起作用,它加载的文件可以在“网络”选项卡中看到,但当您尝试将其作为图像内容读取时,它会告诉您图像已损坏
作为最后手段,可以将
data.txt
更改为
data.js
,并通过
script.src='data.js'
加载它,但也可以将它作为文本加载

作为最后手段,可以将data.txt更改为data.js并通过script.src='data.js'加载,但也可以将其作为文本加载

是的,你可以使用旧的,但是有一个静态命名的函数

基本上,主脚本中有如下内容:

window.onDataLoad = (data) => {
  // do something with data here
}

// Inject script tag wherever you want to reload the data
const scriptEl = document.createElement('script');
scriptEl.src = 'data.js';
document.querySelector('head').appendChild(scriptEl);
然后,在
data.js
中,类似于:

window.onDataLoad( << YOUR DATA HERE >> );
window.onDataLoad(>);

最后。。。只是想说明我的同情!很可笑,
fetch()
不能处理这个问题。当离开XHR时,从HTTP提取数据是一个多么好的机会啊。遗憾的是,这没有发生。

您提到了
static
命名函数
static
关键字在哪里?我认为ES2015指定了static关键字,这样静态方法将被设置为类构造函数的OwnProperty。这只是我的一个知识问题,来回答我自己的好奇心。@File在本例中,我希望
static
有不同的含义。通常,当您使用JSON-P时,函数名是动态(理想情况下是随机)生成的。客户端可能会向服务器指定
returnDataFunction123456789
。然后,服务器以
returnDataFunction123456789({…})
的格式响应,调用客户端指定的函数。动态,即响应是在服务器端动态生成的。因为这里没有服务器端,我建议在“数据”JavaScript文件中有一个固定的函数名。@文件不,不是。Fetch在HTTP之外无法工作。啊,我明白了,谢谢你的更新。CORS问题,sad,应该能够处理磁盘请求。