包含哈希(#)的外部链接的URL

时间:2014-09-14 12:57:56

标签: c# chm sandcastle

我正在使用Sandcastle为C#项目创建一个HTML Help 1(chm)文件,并且遇到生成的chm文件的问题,其中包含哈希(#)字符的URL无法正确打开访问时的浏览器。

基本上发生的事情是,在我的浏览器中打开URL时,URL中的哈希值之后的任何内容都不会出现在URL中。 E.g:

有一个链接,如

http://resources.arcgis.com/en/help/arcobjects-net/componenthelp/index.html#//00250000089m000000

显示为

http://resources.arcgis.com/en/help/arcobjects-net/componenthelp/index.html

在我的浏览器中。

是否有一些事情可以绕过这个限制(我猜这是某种限制)?

1 个答案:

答案 0 :(得分:1)

已知帮助文件名称中的空格字符会导致问题,至少就合并的帮助集合而言。由于Microsoft知识库文章中概述的原因,哈希符号(#)在文件和文件夹名称中也是明确的禁忌:

http://support.microsoft.com/?kbid=319247

许多C#开发人员发现无法读取他们的CHM格式的文​​档和电子书,因为他们将CHM文件存储在“C:\ E-books \ C#”等目录中 哈希字符表示HTML中的锚点,因此CHM查看器无法正确解析路径并检索内容。

解决方案:从目录和文件名中删除“#”(哈希)字符。还要避免在目录名中使用“?”,“&”和“+”字符。

尽管如此,我玩了一下并感到惊讶。它似乎是从编译到CHM的主题的外部链接,并在新窗口中打开'target =“blank”'正在工作,但CHM查看器的浏览器窗格内的外部链接正在工作。

我的CHM Build是使用Sandcastle帮助文件生成器创建的,第二次是使用FAR HTML创建的。附上一个快照。

enter image description here

enter image description here