在使用和编译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进入讨论组讨论。
CHM是编译后的网页文件,网页文件内联都是:<A href="*.htm" >mylink</A>
的形式。你的说明有点错误:1.htm中的锚点的href属性对应的是a.htm而不是其本身。
其次,href应该使用完整路径,如果同在的一个文件夹中,那么就是文件名,如不是则须指定完整路径。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)