怎样在CHM文件中实现超链接

来源:百度知道 编辑:UC知道 时间:2024/06/08 16:06:01
在WROD中实现的超链接,经CHM文件一些制作工具(Visual CHM或Html Help Workshop等等)生成的CHM文件的原超链接失去链接作用.如何解决这个问题.请大家帮忙.(所需的Html文件都被加入工程)

首先说一下,我们使用的chm编译工具是HTML Help Workshop,以下方法也在该软件中试用成功。

在使用和编译chm文件的时候,我们往往需要链接一些外部的文件。比如说你向链接一段视频剪辑,如果把视频剪辑也编译在chm文件之内的话,将会是一个非常巨大的chm文件。在使用过程中会有很大的困难。另外的一种状况可能是这样的:你需要链接一个readme文件,但是当你在制作chm时这个readme文件还没有做好,那么也只能先做好一个对外部文件的链接。

在设计和制作普通的web(html)文档的时候,链接一个文件是很简单的,只需要指定一个目标文件的位置就可以了。至于说包含这个链接的页面的位置是不相关的。

然而,在编译一个chm文件的时候,情况就会发生变化了。主要的问题在于:只能使用一个确定的路径来链接外部的文件。当然,如果确定将要编译的chm文件的使用环境是完全一样的,这个问题就不存在。但是,如果一个用户把chm文件安装在了一个你不希望的地方会怎么样?所有的链接都会实效。还有一个类似的情况是:chm文件在一个无法事先知道盘符的光盘上被引用。

可以使用java script来摆脱这个问题,在下面的代码中,使用定位控件找出chm文件在具体计算机上所处的位置,解析出一个指定文件的确定的路径。值得注意的是需要将被引用的文件和chm放在相同的目录中。

下面,一步步来解释这个脚本是如何工作的。括号内的内容是注释。

<SCRIPT language=javascript>
function parser(fn){
var x,y,s1,a,ra link;

(这里,这个函数开始时需要定义一些变量,变量“fn”将在脚步中起到一个传值的作用。)

ra=/:/;
a=location.href.search(ra);

(脚本的这个搜索是寻找在位置对象中的第一个冒号。)

if (a == 2)
X = 14;
else
X = 7;进入讨论组讨论。