我正在构建一个包含许多外部链接的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,但它无法正常工作。
答案 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® 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&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&w=cerveza">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Welcome">
<param name="Local" value="index.htm">
</OBJECT>
</UL>
</BODY></HTML>
因此,您可以使用正则表达式和上面显示的首选文本编辑器,使用&
搜索并替换&
。使用%26
使用编译的帮助文件(* .CHM)中的示例URL导致服务器错误。
请注意 - HTMLHelp Workshop打开index.hhk
会再次缩短网址,如您所见。因此,您需要清理index.hhk
并立即进行编译,而无需打开index.hhk
。
如下面的快照所示,它会生成满足您需求的内容窗格。