Delphi 如何使WebHelp显示特定主题的帮助而不是索引?

Delphi 如何使WebHelp显示特定主题的帮助而不是索引?,delphi,lazarus,Delphi,Lazarus,我正在为我的Lazarus应用程序添加帮助。我使用WebHelp而不是CHM help来帮助跨平台利用 WebHelp基本上在一个框架集中使用一对html页面——左边是索引,右边是相关主题。要在web浏览器中的特定页面上打开帮助系统,称为: file:///path_to_help_files/index.htm#specific.htm Lazarus表单有一个THTMLHelpDatabase组件和一个THTMLBrowserHelpViewer组件,如中的说明所示 单个组件的HelpTy

我正在为我的Lazarus应用程序添加帮助。我使用WebHelp而不是CHM help来帮助跨平台利用

WebHelp基本上在一个框架集中使用一对html页面——左边是索引,右边是相关主题。要在web浏览器中的特定页面上打开帮助系统,称为:

file:///path_to_help_files/index.htm#specific.htm
Lazarus表单有一个THTMLHelpDatabase组件和一个THTMLBrowserHelpViewer组件,如中的说明所示

单个组件的HelpType设置为htKeyword,HelpKeyword设置为HTML/index.htm或HTML/index.htmsomething.htm

无论我输入什么,帮助文件仅在默认页面(即index.htm)打开

有人对如何在特定页面打开帮助页面有什么想法吗


[我不能指定HTML/something.htm的HelpKeyword,因为这样会忽略主题索引。实际上,我必须通过index.htm才能显示框架集。]

我找到了一个解决方案,但它有点笨重,所以如果有人有更好的想法,我想听听

本质上,我为something.html创建了一个重定向,如下所示:

<!doctype html>
<html>
  <head>
    <title>Something</title>
    <meta http-equiv="REFRESH" content="0;url=index.htm#something.htm">
  </head>
  <body>
    Redirect to index.html
  </body>
</html>
然后,我将相关的Lazarus控件指向HelpKeyword中的HTML/something.HTML,以便在调用帮助时,它重定向到正确的URL。是的,我对重定向使用了.html扩展名,而真正的文件有.htm扩展名——由帮助编写应用程序强制执行


真正麻烦的是,我必须为帮助系统中的每个主题提供一个重定向文件,我想直接从Lazarus应用程序访问这些主题。

哪些URL被传递到浏览器?浏览器接收到的URL是:path_to_file/index.html,换句话说,在Lazarus代码中,something.htm已被剥离,可能是经过了一些验证!。