19

我想将网页 html5/js 页面转换为桌面应用程序。他们可以在没有实时互联网连接的情况下在桌面上使用的东西。(我不想重新编码我的 html5 或 js。)

如果最终用户安装了 Internet Explorer,我可以轻松地将其移植到 hta 文件中。但是,如果他们使用 Vista 或更高版本并卸载了 Internet Explorer(您可以这样做),该怎么办?如果他们的主要浏览器是 Firefox 或 Chrome 怎么办?

我在四处寻找 Firefox,它似乎 Prism 是 hta 文件的替代品,但如果你去 Mozilla 的 Prism 页面,它会说它是一种不再被追求的技术。

所以我有几个问题:

  1. hta 文件是否仍然是 Internet Explorer 的现代技术,仍然可以在 IE9、IE10 中使用?
  2. 如果 IE 未安装在 Windows(或其他操作系统)上,hta 文件是否会自动启动 Firefox/Chrome?
  3. 我可以将一些 html5 的本地存储内容添加到我的 hta 文件中,并且它仍然可以在 IE、FF 和 Chrome 上运行吗?
  4. 如果这些东西在 FF 或 Chrome 上不起作用,他们是否有任何现代且不被弃用的技​​术替代品?
4

7 回答 7

16

实际上 HTA 不是由 Internet Explorer 运行的。它们由安装在 Windows/System32 (Windows7) 中的 mshta.exe 运行。但是,HTA 使用 IE 的渲染引擎,没有 IE 就无法运行。它们也仅适用于 Windows 用户。

可以通过使用添加 HTML5 支持<meta http-equiv="x-ua-compatible" content="ie=9">。根据我自己的经验,也是<!DOCTYPE html>需要的。

MSDN 中的更多信息:HTA 简介

在 SO:HTA;使用其他浏览器托管?

于 2012-05-16T17:52:23.647 回答
9

我想说.hta 应用程序已经过时了,因为它们不支持现代设计标准。你仍然可以使用它们或使用另一个 HTML 编译器,比如 David Esperalta 的那个,它对于非常简单的应用程序来说已经足够了,但是它们都依赖于 IE,我们都知道它是多么的有限和缓慢。

现代替代品:

  • NW.js(以前称为 node-webkit)
  • 我个人使用和推荐的电子。

提到的两个选项都基于Chromium(与 Chrome 相同)、Node.js和 V8。它们支持HTML5、CSS3和最新的 JavaScript 引擎,包括最新的ECMAScript功能等等!

由于他们使用node.js,你可以在你的 DOM中使用它的任何内置库(如 FileSystem)任何 npm 包!

npm 注册表托管了超过 25 万个可重用代码包——世界上最大的代码注册表。

这两个选项都是免费且开源的,但电子支持 ffmpeg 编解码器,无需下载或构建它们。

  • 这两个选项现在都支持 ffmpeg。

您的应用程序将 100% 独立,您可以为 Windows、macOS 和 Linux 构建相同的应用程序。

electron 还可以提供简单的解决方案来自动编译和使用CoffeeScript、Babel、LESS、SASS等。

缺点:

• 由于没有运行时解决方案,您总是必须随应用程序一起发布整个内容,而且您最终会得到一个相对较大的包。

• 对于某些应用而言,启动时间不太理想

• 尽管有一些方法可以让它变得更难,但是任何知道自己在做什么的人都可以使用您的代码。


2021 更新

electron 和 nwjs 与以往一样可行,但如果您正在寻找更轻量级的 UI,我还推荐Sciter.JS,它在最近的更新中取得了巨大的飞跃,并且它没有为您的应用程序提供整个浏览器,开发人员似乎致力于遵循最新的 HTML/CSS/JS 标准并添加一些不错的内容。它带有很好的样本集合,可以帮助您入门。和主要操作系统版本的预构建二进制文件。需要注意的一件事是,如果这对您很重要,它会使用 QuickJS 而不是 Node.js。

我一直在密切关注它的发展,我建议尝试一下。

于 2017-01-26T15:27:33.407 回答
3

1.hta 文件是否仍然是 Internet Explorer 的现代技术,仍然可以在 IE9、IE10 中使用?

很可能是的。底层技术基于将 IE 浏览器控件嵌入为 activex 对象。即使 mshta 不再随 windows 一起分发,仍然可以使用 c# 和浏览器控件创建副本。

2.如果没有在Windows(或其他操作系统)上安装IE,没有安全问题或本地访问问题的hta文件会自动启动Firefox/Chrome吗?

不,虽然 .hta 扩展名可以与这些浏览器相关联,但两者都不支持 mshta 指令 - 结果是浏览器会提示您将文档另存为外部文件,就像 exe 或 zip 文件一样。

3.我可以将一些html5的本地存储内容添加到我的hta文件中,它仍然可以在IE、FF和Chrome上运行吗?

是的,您可以添加对 html5 的支持,但同样只能在 IE 上使用。

4.如果这些东西不能在 FF 或 Chrome 上运行,他们是否有任何现代且不被弃用的技​​术替代品?

Adobe 生产了一款名为 Adob​​e AIR 的竞争产品 - http://www.adobe.com/products/air.html。该产品提供了 hta 中可用功能的有限交集。本地文件访问受限于特定路径,通常对父操作系统的访问受到很大限制。然而,它们确实在所有主要平台上运行,包括移动设备,因此它们可能是您正在寻找的技术。AIR 使用 webkit 作为嵌入式浏览器引擎。

于 2012-06-21T04:00:18.500 回答
3

我不会尝试使用 .HTA 文件,我会使用 Node-Webkit。Node-Webkit 将让您做与 .HTA 文件相同的事情,但 Node-Webkit 似乎更快并且得到更好的支持。https://github.com/rogerwang/node-webkithttps://github.com/rogerwang/node-webkit/wiki/Manifest-format。此外,使用 Node-Webkit,您可以使用 node.js 并轻松地使您的程序也跨平台。

于 2014-11-24T07:07:39.167 回答
1

是的,.hta 是一个已弃用的功能,仅适用于 Windows 机器。但是,据我所知,它也是提供操作系统功能集成的唯一选项,不需要网络服务器,可以完全控制应用程序窗口的外观/感觉/放置,以及我上次检查的时间(诚然,这是 2 年前的事了)仍然在 Windows 10 中工作。

于 2021-05-12T19:37:14.747 回答
0

这个旧但仍然相关的问题的更新。

mhtml / mht,“MIME HTML”可能是一个简单的解决方案。来自:https ://whatis.techtarget.com/fileformat/MHTML-MHTML-document-MIME

MHTML(MIME HTML 的缩写)是 Internet Explorer 保存的网页存档文件格式的文件扩展名。存档的网页是一个 MHTML 文档。MHTML 保存网页内容并将外部资源(如图像、小程序、Flash 动画等)合并到 HTML 文档中。

在撰写本文时,我已经测试了对以下浏览器的原生支持:

  • 是 Chrome 81.0.4044.138
  • 是的歌剧 68.0.3618.104
  • 没有火狐 76.0.1
  • 没有 Safari 版本 13.1 (15609.1.20.111.8)

Chrome 在去年添加、删除和重新添加了对 mhtml 的支持,因此那里的投资是不稳定的。Safari 原生支持 MAFF,但不支持 mhtml Firefox 可以通过插件支持 mhtml。其他浏览器未测试,但 MSIE 已支持它。

于 2020-05-19T09:20:38.073 回答
0

请查看电子它基于 v8

http://electron.atom.io

于 2016-06-14T02:11:43.167 回答