Javascript 是否可以在没有HTTP请求或<;的情况下从HTML应用程序目录检索文本文件;输入>;?
我正在开发一个本地运行的HTML/javascript应用程序 在处理img标记时,可以将src属性设置为具有相对路径的文件名,从而快速轻松地从应用程序目录加载图像。我想使用类似的方法从应用程序目录中检索文本文件 我用过TideSDK,但它不那么轻。我知道HTTP请求,但如果我没记错的话,只有Firefox对我在本地文件访问中使用HTTP表示欢迎(尽管使用src访问本地图像似乎不是问题)。我也知道FileReader对象;但是,我的界面要求我根据文件名加载文件,而不是根据文件浏览器选择加载文件,Javascript 是否可以在没有HTTP请求或<;的情况下从HTML应用程序目录检索文本文件;输入>;?,javascript,jquery,html,get,src,Javascript,Jquery,Html,Get,Src,我正在开发一个本地运行的HTML/javascript应用程序 在处理img标记时,可以将src属性设置为具有相对路径的文件名,从而快速轻松地从应用程序目录加载图像。我想使用类似的方法从应用程序目录中检索文本文件 我用过TideSDK,但它不那么轻。我知道HTTP请求,但如果我没记错的话,只有Firefox对我在本地文件访问中使用HTTP表示欢迎(尽管使用src访问本地图像似乎不是问题)。我也知道FileReader对象;但是,我的界面要求我根据文件名加载文件,而不是根据文件浏览器选择加载文件,
有什么方法可以实现这种类型的文件访问,还是我一直使用上述方法?浏览器不允许您访问这样的文件,但您可以创建javascript文件,而不是这样的文本文件: text1.js:
document.write('This is the text I want to show in here.'); //this is the content of the javascript file
现在,您可以随意调用它:
<script type="text/javascript" src="text1.js"></script>
浏览器中存在太多的安全问题(限制),使得许多本地web应用无法实现,因此我对类似问题的解决方案是从浏览器中移出,进入节点webkit,它将Chromium+node.js+您的脚本结合在一起,成为一个具有完整磁盘I/O的可执行文件
[edit]很抱歉,我以为你想用TideSDK做这件事,如果你想再试试TideSDK[/edit],我会给出我的答案 我不确定这是否是你想要的,但我会尽力解释我的情况。 我有一个应用程序,允许用户保存其进度状态。为此,我允许他选择一个文件夹,输入一个文件名,然后写下这个文件。当用户打开应用程序时,他可以打开保存的文件,并返回其进度。因此,我假设这个增强功能与您正在寻找的功能相似 在我的例子中,我使用本机文件Select允许用户选择特定的保存(我使用的是CoffeeScript): (相关文件) 完成此步骤后,我将打开所选文件:
if !filePath?
fileToLoad = Ti.Filesystem.getFile(scope.fileSelected.nativePath())
else
fileToLoad = Ti.Filesystem.getFile(filePath)
data = Ti.JSON.parse(fileToLoad.read())
(相关文件)
请注意,这些代码片段是从我的项目中复制/粘贴的,如果没有我的其余代码,它们将无法工作,但我认为这足以说明我如何打开一个文件并读取他的内容
在本例中,我使用Ti.JSON.parse,因为这些文件中只有javascript对象,但在您的示例中,您可以只获取内容。如果您已经知道文件名,或者从另一种方式获得文件名,那么openFileChooserDialog不是必需的,您可以用自己的方式使用Ti.Filesystem
if !filePath?
fileToLoad = Ti.Filesystem.getFile(scope.fileSelected.nativePath())
else
fileToLoad = Ti.Filesystem.getFile(filePath)
data = Ti.JSON.parse(fileToLoad.read())