是否可以在没有HTTP请求或<输入>
Is it possible to retrieve text files from HTML app directory without HTTP request or <input>?
我正在开发一个本地运行的HTML/javascript应用程序。
在处理img标记时,可以将src属性设置为具有相对路径的文件名,从而快速轻松地从应用程序的目录中加载图像。我想使用类似的方法从应用程序的目录中检索文本文件。
我用过TideSDK,但它不那么轻。我知道HTTP请求,但如果我没记错的话,只有Firefox对我使用它访问本地文件表示友好(尽管使用src访问本地图像似乎不是问题)。我也知道FileReader对象;但是,我的界面要求我根据文件名加载文件,而不是像<input type="file">
那样根据文件浏览器选择。
是否有某种方法可以实现这种类型的文件访问,或者我是否坚持使用上面提到的方法?
浏览器不允许您访问这样的文件,但您可以制作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应用程序无法实现,因此我对类似问题的解决方案是从浏览器中移出,进入node webkit,该webkit将Chromium+node.js+您的脚本组合为具有全磁盘I/O的可执行文件。
http://nwjs.io/
[edit]很抱歉,我以为你想用TideSDK做这件事,如果你想再次尝试TideSDK[/edit],我会给出我的答案
我不确定这是否是你想要的,但我会尽力解释我的情况。我有一个应用程序,允许用户保存他的进度状态。要做到这一点,我允许他选择一个文件夹,输入一个文件名并写入这个文件。当用户打开应用程序时,他可以打开保存的文件,并返回进度。因此,我认为这个增强功能与您正在寻找的功能类似。
在我的情况下,我使用本机文件选择来允许用户选择特定的保存(我使用的是CoffeeScript):
Ti.UI.currentWindow.openFileChooserDialog(_fileSelected, {
title: 'Select a file'
path: Ti.Filesystem.getDocumentsDirectory().nativePath()
multiple: false
})
(相关文档http://tidesdk.multipart.net/docs/user-dev/generated/#/api/Ti.UI.UserWindow方法openFileChooserDialog)
完成此步骤后,我将打开所选文件:
if !filePath?
fileToLoad = Ti.Filesystem.getFile(scope.fileSelected.nativePath())
else
fileToLoad = Ti.Filesystem.getFile(filePath)
data = Ti.JSON.parse(fileToLoad.read())
(相关文档http://tidesdk.multipart.net/docs/user-dev/generated/#/api/Ti.Filesystem)
请注意,这些片段是从我的项目中复制/粘贴的,如果没有我的其余代码,它们将无法工作,但我认为这足以说明我是如何打开文件并阅读他的内容的。
在这种情况下,我使用Ti.JSON.parse,因为这些文件中只有javascript对象,但在您的情况下,您只能获取内容。如果您已经知道文件名,或者您可以通过其他方式使用Ti.Filesystem,那么openFileChooserDialog不是强制性的。
- 正在检测导航到<a name=“;最新主题”></a>
- 如何附加<ul><李>元素位于某个特定条件的父元素列表之间
- 在<script src=“"></脚本>标签
- 等效于<script src=“;something1.json”></脚本>
- CSS/.JS问题,<ul><李>在Megamenu中
- 如何在<td></td>在Procractor中
- 显示“<script src='some.js'></脚本>"在Html文档中
- 如何将Array转换为<ul><李>以字母为标题的字母列表
- <script src=“//代码.jquery.com/jquery-1.11.1.min.js”></
- 选择<脚本></脚本>作为html正文中的纯文本
- 可折叠<UL><李>不起作用
- $.mobile.loadPage()和$(“linkBtn”).click();t负载<头部></头部&
- <脚本/>vs<脚本></脚本>webpack和angular
- Javascript/RRails-如何包装link_to而不是<a></a>在javascript
- jQuery在处理<选择><选项>
- 布局lt md已被弃用.请使用`layout gt-<xxx>`变种
- 在<%%中定义的访问变量>从<脚本></脚本>
- 页面设计<a href><按钮><输入>在JSP中
- 注入html标记<ul></ul>在我的<李></李>元素
- jQuery选择器<按钮></按钮>