带&符号的CHM外部链接

时间:2017-04-28 17:49:01

标签: chm html-help-workshop

我正在构建一个包含许多外部链接的CHM文件。链接位于Index.hhk中,并且应该在CHM帮助中显示外部页面。

所有链接都是这样的:http://dle.rae.es/srv/search?m=30&w=casa

如您所见,路径中包含符号&,显然CHM无法处理。所有链接都缩减为" http://dle.rae.es/srv/search?m=30? "通过HTML Help Workshop。

有没有办法解决这个问题?

我尝试使用%26,但它无法正常工作。

1 个答案:

答案 0 :(得分:1)

这有点复杂,与HTMLHelp Workshop的行为有关。请记住,HTMLHelp(CHM' s)已有将近20年的历史,而且基于Windows的帮助系统处于"维护模式"只要。某些字符以特殊方式处理,这会导致问题,特别是文件名。

所以,例如散列(#)是用于超链接的注册字符。不能使用此字符(以及"?","&"和" +"字符)。所有这些都有特殊意义。

我们现在应该解决您的问题,并为您的index.hhk和HTMLHelp研讨会提供解决方案。您可能知道index.hhk文件是文本文件(旧站点地图格式),可以通过纯文本编辑器编辑,如NotePad++

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<HTML>
<HEAD>
<meta name="GENERATOR" content="Microsoft&reg; HTML Help Workshop 4.1">
<!-- Sitemap 1.0 -->
</HEAD><BODY>
<OBJECT type="text/site properties">
    <param name="WindowName" value="StackOverflow">
</OBJECT>
<UL>
    <LI> <OBJECT type="text/sitemap">
        <param name="Name" value="Ampersand-casa">
        <param name="Local" value="http://dle.rae.es/srv/search?m=30&amp;w=casa">
        </OBJECT>
            <LI> <OBJECT type="text/sitemap">
        <param name="Name" value="Ampersand-cerveza">
        <param name="Local" value="http://dle.rae.es/srv/search?m=30&amp;w=cerveza">
        </OBJECT>
    <LI> <OBJECT type="text/sitemap">
        <param name="Name" value="Welcome">
        <param name="Local" value="index.htm">
        </OBJECT>
</UL>
</BODY></HTML>

因此,您可以使用正则表达式和上面显示的首选文本编辑器,使用&搜索并替换&amp;。使用%26使用编译的帮助文件(* .CHM)中的示例URL导致服务器错误。

请注意 - HTMLHelp Workshop打开index.hhk会再次缩短网址,如您所见。因此,您需要清理index.hhk并立即进行编译,而无需打开index.hhk

如下面的快照所示,它会生成满足您需求的内容窗格。

enter image description here