最近开发了一个网页调用的ATL控件,并包打成cab和完成数字签名的工作。
测试环境:XP、Win2003、Win2008,都在IE中设置允许运行未签名的ActiveX。
网页中的引用代码如下:
<object id="tt" classid="clsid:BFEE3698-F907-41B4-85FA-490496131A2B" codebase="http://www.xxx.com/atlcom.cab#version=1,0,0,1" width="0" height="0"></object>
运行情况:直接用IE打开时会提示javascript错误,不能执行ATL中的方法;如果用傲游或GreenBrowser浏览访问,却能正常执行ATL中的方法。
请问出现这情况是什么原因?另外,如果要进行有效认证的数字签名,要到哪个网站去申请和付费?

解决方案 »

  1.   

    1. 降低IE安全级别:
    设置 > 安全 > 允许非签名的控件下载.2. javascript错误是什么? 在脚本中用try{...}catch(e){alert(e.message);}看弹出什么错误?3. 数字签名需要购买, 参考:
    http://msdn.microsoft.com/en-us/library/ms995347.aspx
      

  2.   


    首先感谢你的回复。
    1. 前面提问时已提到允许非签名的控件下载和运行。
    2. javascript的错误信息就是:“对象不支持此属性或方法”。
    但是同样的URL,如果用傲游和GreenBrowser这些用IE内核的浏览器却能正常执行并得到最终想要的结果。
      

  3.   

    仔细检查该属性和方法的接口描述(IDL文件中)
    另外, 多找几台机器测试下(在IE browser中)
      

  4.   

    http://www.wotrust.com/很贵的,哥们。
      

  5.   

    在vista下面倒是遇到过这种问题
    由于是网页JS调用ATL里面的方法,一般xp下IE会报警“执行不安全的ActiveX交互”,到了vista下面,IE7直接就禁止了,报警都不报了
    在ATL里面将COM接口增加一个IObjectSafety支持,即可解决但是看楼主又说测试环境2000,xp,按理说不会是我说的这个问题
      

  6.   

    问题已解决,确实是因为缺少接口IObjectSafety造成的,非常感谢各位!