【问题标题】:Using HTML Help Workshop 1.3 and HTML5 and Javascript DOM and targeting Windows 10 with HTML Help files?使用 HTML Help Workshop 1.3 和 HTML5 和 Javascript DOM 并使用 HTML 帮助文件定位 Windows 10?
【发布时间】:2019-08-06 00:57:48
【问题描述】:

我正在使用通过转换旧版 WinHelp 帮助源(从使用 Microsoft 转换工具使用 Word 编辑的 .RTF 文件转换而来)生成的 HTML 帮助源。这个来源自从被转换后就没有被触及过,并且在 2014 年左右或更早的某个时候完成了一些初步工作。

我目前在 Windows 7 PC 上使用 Visual Studio 2005 来更新此 HTML 帮助源。我创建了一个项目并添加了所有各种源:HTML 文件、包含图像的 BMP 文件、包含 JavaScript 的文件和包含 CSS 的文件。较旧的基于 WinHELP 的内容使用了很多弹出窗口,这些弹出窗口转换为单独的文件,并且通过仅合并这些仅在一个地方使用的小文件,我将文件数量减少了三分之一。

我要做的第一件事是手动清理标签,通过合并和重写内容来消除文件,并更改旧样式标记以使用更现代的 CSS。

我的帮助文件的目标是 Windows 7 和 Windows 10 的桌面用户。一旦我清理了基础知识,我计划使用此源迁移到 Visual Studio 2015。我已经完成了一个将 VS 2005 转换为 VS 2015 的测试项目,并且转换似乎工作正常,并且 HTML 源代码可以编译成可用的 .chm 文件。

据我所知,Microsoft 的 HTML Help Workshop 似乎正在维护中,但不再处于积极开发中。根据HTML Help Workshop and Documentation download page,最后一个版本似乎是 2012 年发布的 1.32,尽管它适用于 HTML 帮助 1.4 版。另请参阅 Microsoft Docs 中的 Microsoft HTML Help 1.4

Visual Studio 2005 表明某些标记(我认为是 HTML4)已被弃用。 html 帮助源似乎可以编译为 .chm 文件,并且生成的 .chm 文件在 Windows 7 下也可以正常工作。

我对这个编译过程有点困惑。我的印象是,workshop 编译器将所有各种 .html 文件连同它生成的几个文件打包在一起,然后将它们全部压缩到一个存档中。

这是否意味着我使用的 HTML 标准取决于我假设的 Microsoft 浏览器、Edge 以及它支持的 HTML 标准?

这个问题真的意味着 HTML Help Workshop 中是否存在任何依赖关系,这意味着我不能使用 HTML5 或更新的 CSS?

有一些简单的 Javascript 使用 div 标签进行一些基本的用户交互。这工作得很好。我可以期望 Microsoft Edge 支持的任何 Javascript HTML DOM 都可用于此帮助文本吗?

【问题讨论】:

标签: windows-10 chm html-help html-help-workshop


【解决方案1】:

您知道 Windows HTML 帮助是作为带有 .chm 扩展名的 LZX 压缩二进制文件提供的。它包含一组 HTML 文件、一个超链接目录和一个索引文件。文件格式已经过逆向工程,其文档可免费获得,例如Unofficial (Preliminary) HTML Help Specification

文件以字节“ITSF”(ASCII)开头,用于“信息技术存储格式”(参见Microsoft's HTML Help (.chm) format 文档)。 CHM 可以使用 FAR HTML 打开,如此 SO 线程 to get CHM details from help ID 的屏幕截图所示。

请注意,HTMLHelp Viewer (hh.exe) 中使用陈旧的 Internet Explorer 来呈现 HTML 内容。 HH.EXE 与 HTML 帮助一起分发,因此您可以依赖它的存在。它位于 Windows 文件夹中,并且具有有限数量的命令行选项。 HH.EXE 与 .CHM 文件相关联。因此,双击 *.CHM 文件,Windows 将使用 HH.EXE 打开该文件。它是一个非常小的文件,例如包装器,它主要将帮助文件名传递给 HH API 库。

Edge 浏览器未在此上下文中使用。 20 多年前的 HTMLHelp 仍然可以做很多事情,例如 SVG 的集成。但是,我建议不要完全使用标准 HTML5 并且要非常小心。内容本身应尽可能易于维护。这也可以通过简化的 HTML 来实现。

您可能知道 Microsoft 正在构建基于 Chromium 的 Web 浏览器,它将取代 Windows 10 上的 Edge。我不确定 Microsoft 将如何集成所需的 Internet Explorer 渲染引擎以在未来的环境中支持 CHM 查看器。

有点过时了,但请阅读Make your CHM Help Files show HTML5 and CSS3 content 。另见Web Browser Control & Specifying the IE Version,其中讨论了使用X-UA-Compatible HTML 元标记。

看到这个标签,What does <meta http-equiv="X-UA-Compatible" content="IE=edge"> do?

【讨论】: