需要帮助读取位于同一目录中的Javascript文件吗
我编写此函数是为了尝试读取与Javascript文件和index.html文件位于同一目录中的文件。我以前读过文件,但通常我让用户自己选择文件,所以我从来没有创建过实际的文件对象 有人知道为什么下面的代码不起作用吗需要帮助读取位于同一目录中的Javascript文件吗,javascript,html,file,blob,filereader,Javascript,Html,File,Blob,Filereader,我编写此函数是为了尝试读取与Javascript文件和index.html文件位于同一目录中的文件。我以前读过文件,但通常我让用户自己选择文件,所以我从来没有创建过实际的文件对象 有人知道为什么下面的代码不起作用吗 function getFile() { var reader=new FileReader(); var file=new File("input.txt"); var str=reader.result; reader.readAsText
function getFile()
{
var reader=new FileReader();
var file=new File("input.txt");
var str=reader.result;
reader.readAsText(file);
return str;
}
更新:
一些额外的信息(如果我没有回答你的问题,我很抱歉,我真的是新手,我所知道的一切都是自学的)
服务器端还是客户端?我认为这将是托管服务器端-我有一个域,我要上传文件到 由于安全限制,不可能。您必须使用用户选择的文件。想象一下,如果javascript可以读取硬盘上的任何文件,会发生什么-噩梦 我有一个类似的用JS编写的桌面应用程序代码。它在IE和FF上工作得很好,直到Chrome出现(是的,那是很久以前的事了!),并且开始限制沙盒。在某种程度上,IE和FF也收紧了权限,该方法不再有效(我使用的代码不再有效): 在某种程度上,FF和Chrome有一些启动标志,使沙盒在某些安全限制上变得松散,但最终我意识到这只是一段旧代码 今天,我使用
localStorage
在本地机器上存储数据。唯一的缺点是必须实现导入/导出功能,以便通过复制/粘贴原始文本将其移植到其他浏览器/机器
我所做的就是这样。据说数据库的最大大小约为10 MB(但已知存在偏差),我存储的所有内容都是一个JSON字符串:
function store(data)
{
localStorage.data = JSON.stringify(data);
}
function retrieve()
{
return JSON.parse(localStorage.data);
}
显然,这两个函数过于简单,您需要处理边缘情况,例如不存在数据或导入了非JSON字符串。但是我希望您了解如何在现代浏览器上存储本地数据。使用File()
构造函数,您只能创建新的文件对象,但无法从lokal磁盘读取文件
现在还不太清楚你到底想要实现什么。
您可以说,input.txt与html和js位于同一目录中。因此,它位于服务器上
如果你想从服务器上读取文件,你必须使用一个ajax请求,这已经在后面解释过了。好吧,如果这个javascript在客户端上运行,那么你就不能这样做。疑问:有服务器吗?还是打算从驱动器运行?请包括上下文,以便我们可以帮助您。请澄清您是试图在客户端还是服务器端读取文件。请参阅:有了更新的信息,显然您必须从服务器获取文件。因此,必须使用ajax请求。看我的
function store(data)
{
localStorage.data = JSON.stringify(data);
}
function retrieve()
{
return JSON.parse(localStorage.data);
}