在 Java 中使用 IE/Chrome HTML 渲染器或使用 JavaScript 存储文件
Using the IE/Chrome HTML-Renderer in Java OR storing files with JavaScript
我目前正在尝试编写一个小应用程序(不需要互联网访问 - 所以它实际上只是一个本地应用程序),应该保持非常简单。我考虑过简单地使用HTML(+CSS)和一些JavaScript,因为这在很大程度上就足够了,但我还需要访问文件系统才能将我的数据存储在某个文件中,这在javascript中是不可能的(是的,我爬过很多关于JavaScript和文件系统的帖子,但我不喜欢任何解决方案。
所以我想到了另一种方法:有一些很好的库叫做HtmlUnit,它允许我基本上模拟我的JavaScript,同时拥有Java FileAccess。
所以,有两个问题:
-
是否可以在某种程度上将 JavaScript 文件声明为"本地",从而获得文件系统权限?
-
许多应用程序(游戏等)在内部使用Internet Explorer。是否可以在Java中使用IE(甚至Chrome/Firefoxes/Whatevers)渲染器?我不喜欢我到目前为止找到的任何渲染库 - 或者只是能够将 js+html 代码作为本地应用程序执行?
-
我试过了.HTA,我绝对讨厌它们。只是...老。那里什么都不可能。让一个简单的html/js应用程序看起来像在chrome中,但是一个本地应用程序,这将是非常棒的。
问答
- 是否可以在某种程度上将 JavaScript 文件声明为"本地",从而获得文件系统权限?
不可以,只能通过ActiveX/插件(例如Java/浏览器插件)来实现。
其他人可能会建议JavaScript具有数据存储或文件系统。但它们不是本地文件系统访问,您无法使用它们读取或写入真实文件。
- 许多应用程序(游戏等)在内部使用Internet Explorer。是否可以在Java中使用IE(甚至Chrome/Firefoxes/Whatevers)渲染器?我不喜欢我到目前为止找到的任何渲染库 - 或者只是能够将 js+html 代码作为本地应用程序执行?
JavaFX的WebView使用WebKit作为渲染器。Webkit不是一个完整的浏览器,所以它的功能较少,例如没有localStorage,但你可以用Java代码替换其中的大部分。
SWT浏览器,如另一个答案所述,也可以用作渲染器,但会使您难以打包为单个文件,而且它取决于客户端来安装/更新浏览器。
- 我试过了.HTA,我绝对讨厌它们。只是...老。那里什么都不可能。让一个简单的html/js应用程序看起来像在chrome中,但是一个本地应用程序,这将是非常棒的。
可以使用内联代码和数据 uri 将所有资源嵌入到一个 HTML 文件中。这是我的一个项目:[源文件] [单个文件可部署]。
无论如何,大多数浏览器都不允许文件写入,毫无疑问,您已经知道,Chrome 尤其反对文件访问。
建议
根据我的经验,唯一可行的解决方案是:
- ActiveX HTML 应用程序
- 本机程序,例如Java jar或.Net exe。(或包装为 exe 的罐子)
- 成熟的网络应用程序,带有定制的浏览器和量身定制的启动器,例如在USB记忆棒/DVD/安装程序中
我已经完成了所有这些,我个人认为 Jar/Exe 是根据您的要求最平衡的解决方案。
这是可悲的。 如果地铁应用程序像 exe 一样易于部署,我会建议这样做。
是否可以在某种程度上将 JavaScript 文件声明为"本地",从而获得文件系统权限?
Firefox 扩展将具有访问文件系统所需的权限。
是否可以在Java中使用IE(甚至Chrome/Firefoxes/Whatevers)渲染器?
是的,例如使用 SWT 浏览器小部件或 JavaFX WebView
我想知道这对你来说是否足够(使用HTML5存储功能):
function saveFile(localstorage) {
localstorage.root.getFile("info.txt", {create: true}, function(theFile) {
theFile.createWriter(function(theContent) {
var blob = new Blob(["Lorem Ipsum"], {type: "text/plain"});
theContent.write(blob);
});
});
}
浏览器会要求用户提供在本地系统中存储文件的权限。
信用到期的信用
- 将数据存储在javascript数组中以供进一步使用
- 如何从C#代码背后调用本地存储的javascript函数
- 使用全局变量来存储数字(JavaScript)
- 如何获取PHP变量数据并将其存储在JavaScript变量中
- Fin上传器直接上传到Azure Blob存储-在Javascript中获取文件uri
- 我可以将所需文件的全部内容存储在JavaScript变量中吗
- 将php文件输出存储在javascript变量中
- 在 Java 中使用 IE/Chrome HTML 渲染器或使用 JavaScript 存储文件
- 如何使用 JavaScript 在浏览器中存储文件
- 从XML文件中排除一组单词,并将它们存储在Javascript中的数组中
- 来自SD卡内部存储的Javascript Android-rread文件
- 在新窗口中打开存储在javascript变量中的html文件
- 在cookie中存储/检索Javascript文件对象
- 我如何写一个文本文件到谷歌云存储从JavaScript绑定到谷歌表
- 如何让web浏览器下载存储在JavaScript字符串中的文件
- 如何通过Ajax将返回的字符串从php文件存储到Javascript变量
- 在Java的Spring框架中,将.properties文件中定义的元素存储到JavaScript变量中的最佳方法是什么
- 嵌入一个以字符串形式存储在JavaScript中的.swf小文件
- 我如何在另一个JavaScript文件的函数中使用远程存储的JavaScript文件中的变量
- 从外部json文件中获取对象数组,并将其存储在javascript中