ActiveX的一个属性是文件路径,在htm文件中给组件传文件的相对路径,如何让组件自动得到该文件?   
  我将一个文件嵌入网页中,就象在网页中放置fash一样进行播放。   
  例如<param   movie   =   “flash.swf”>,则表明该flash.swf文件和htm文件在同一目录中,这时可以播放,或movie   =   "http://192.168.0.1/flash.swf"也可以播放。   
  但是在我的ActiveX中,一旦设置相对路径就出现问题。   
  请问各位高手,我该怎么得到要嵌入的文件呢? 

解决方案 »

  1.   

    相对路径肯定是不行的啦.它根本知道相对那个啊.<param  movie  =  “flash.swf”>这个相对路径可以操作是因为浏览器知道是相对当前页面的.ACTIVEX里的相对路径和ACTIVEX实现的方式有关,它在处理文件的时候就没有将当前页面的路径和相对路径
    相加来确定文件. 
      

  2.   

    问题是,Flash是怎么做到的呢?,加载flash动画的方法是:<OBJECT CLASSID="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" WIDTH="776" HEIGHT="586">
      <PARAM NAME=movie VALUE="../../../sample/flash.swf">
      <PARAM NAME=play VALUE=true>
      <PARAM NAME=loop VALUE=0>
      <PARAM NAME=quality VALUE=high>
    </OBJECT>我的ActiveX控件也想这么加载我的文件啊。
    <OBJECT classid="clsid:568DC60B-F884-4147-8610-8C348AAFA2F8" width="100%" height="100%">
      <PARAM NAME="DataFile" VALUE="data.xml">
    </OBJECT>
      

  3.   

    你得在程序里写啊,你不写程序,他怎么知道你要干什么啊。你在Activex里定义movie这个属性了吗?
    你如果没定义,你写这个有什么用,他能认吗。我写的控件都是要定义一个属性,比如filename,然后用javascript写obj.filename='你的文件名'; 然后要在程序里写filename属性,究竟要干什么。
      

  4.   

    朋友,有问题好好商量嘛,我这里有一个方法,你可以试一下,我之前其实也做过这样的一个项目,主要技术难点就在于,怎么将第三方控件所需要的物理文件以一个属性(如“filename”)的形式引入到我的web页面当中,我在许多网站上查过也没有什么好的方案,于是我自己想了一个方法,好像还行。如下:
    首先在asp页面前台你得加入控件的ojbect标识,假如你的控件为viewer,则应当如下:
    <OBJECT ID="viewer"
     CLASSID="CLSID:A6336AB8-D3E1-489A-8186-EE40F2E027FE"   codebase="WebSiteName/viewer.cab">
        <PARAM NAME="_Version" VALUE="65536">
        <PARAM NAME="Filename" VALUE="<%=Filename%>">
    </OBJECT>
    其中比较关键的是"<%=Filename%>",这是与后台的一个接口,然后在后台(我用的是VS2008,语言为C#),你给一个按钮,点击一点按钮,就给Filename赋一下值,怎么赋是关键,我的是这样做的:
             Filename = Server.MapPath("~");
            Filename = Filename + @"/Model/first/2.ipt";
    其中@"/Model/first/2.ipt"是当前网站根目录下的相对路径,表示在根目录下有一个Model的文件夹,下面有子文件夹,里面有2.ipt文件。我运行之后,好像还行,我正要拿到服务器上试一下,等待中……,对于你的情况,好像和我的差不多,多交流一下吧。