导航:[首页]->[js]->[CDHtmlDialog使用的html包含其他文件]

我们使用CDHtmlDialog时,可以指定一个Html(通过资源ID)来显示内容,不过这个Html文件可能包含其他的内容,比如其他html,js,css或者图片文件等。这是你可以一个本地路径,或者一个网络上的url。不过如何引用资源里面的另一个文件呢?

  1. 找到文件在资源中对应的id号(一个数字)
  2. 在Html中使用"#ID"
  3. 前提是所有的资源都放在同一个类型之下,例如frontpage

在CDHtmlDialog类使用中,总是会遇到HTML不能正确解析资源的问题。我的经验如下:

1。使用绝对路径在资源里引入HTML网页和图片资源: 使用RES://应用程序名称/资源类型/#资源号, 例如:如果你的应用程序名为c.exe,html网页或资源保存在HTML类型下。并且查看资源标示号为133,便可以这样引用:res://c.exe/html/#133。或这样引用:res ://c:/c.exe/html/#133

2。使用相对路径引用: 如果使用方法1,总得去寻找应用程序名称,如果引入的是html中的图片,有诸多不便,譬如:应用程序如果改变了名称,那调用便会无效。为了防止这些纠葛,有一个非常好的办法就是:把所有使用的资源(图片,CSS,JS等),统统放到HTML资源类型下,引用的时候写成 res://#资源号就可以了。譬如上例便可以这样引用:res:/#133。当然好像res:/ 和res:// 是通用的。

3。FLASH控件的支持: 我没有在资源里引用flash成功,看了看flash的官方文档,好像必须为绝对路径才可以。例如movie=“d:\flash\test.swf”是可以成功的。

4。不在资源里引用HTML,直接在本地文件里使用。可以在CDHtmlDialog的继承类里添加一个函数来处理。

注意

若资源类型不一致,例如html、js、css放在资源的HTML目录下,png放在资源PNG目录下。那么直接使用res:/#123可能无法引用到正确的资源。

这时可以使用res:/PNG/#123


参考

  1. http://topic.csdn.net/t/20050522/14/4026416.html
  2. http://www.cnblogs.com/lucc/archive/2010/11/24/1886087.html