本帖最后由 lzfly 于 2010-02-20 22:29:00 编辑

解决方案 »

  1.   

    已开始你就要保证让addEventListener 把正确的参数传递进去,你这个我们也没有办法调试阿,能不能发出一个不带active 控件的例子
      

  2.   

    你的邮箱是多少?我mail给你。高手请赐教啊!
      

  3.   

    bShow = false; //这里的设置没有效果
    nResult = 0; //这里的设置没有效果 bShow改为bshow,另外这两行有效果的,不信你改成这样就看到bshow和nResult已经改变:function init() {
    // 跳转处理
    var handler = function(bshow,nResult){
        alert('OnCloseDocument');
    alert(bshow);
    alert(nResult);
    bShow = false; //这里的设置没有效果
    nResult = 0; //这里的设置没有效果
    alert(bshow);
    alert(nResult);
    };//var viewer = document.getElementById('AXCtrl');handler();
      

  4.   

    谢谢你!应该是我的代码引起了你的误解,alert(bshow); 
    alert(nResult); 
    bShow = false; //这里的设置没有效果 
    nResult = 0; //这里的设置没有效果 
    alert(bshow); 
    alert(nResult); 
    ================================
    bShow改为bshow,另外这两行有效果的,不信你改成这样就看到bshow和nResult已经改变:确实改成bShow后 alert(bshow); 产生了效果,但是我的问题是要让这里对bShow值得的改变在'OnCloseDocument'事件结束后,仍然还有效果。就是这里的参数是传址的而不是传值的。
      

  5.   

    javascript处理的是浏览器的事件,ActiveX控件的事件消息传不到javascript脚本中。
      

  6.   

    <object id="AXCtrl" bShow = false nResult = 0 height=450 width=650 CLASSID="clsid:AEC22598-D3E5-790A-TGE8-SFEA90C68B26" /> var handler = function(){
        alert('OnCloseDocument');
    var AXCtrl=documant.getElementById('AXCtrl');
    AXCtrl.bShow = false; 
    AXCtrl.nResult = 0; 

    }; 吧传的内部属性 直接变成外部属性挂在对象上  反正都是handler自己在控制逻辑 所以传不传参数都无所谓 之后控件内部的操作在分析自己的属性 或者属性本身就自己根据变化操作 不知道C++写的是不是可以这样
      

  7.   

    谢谢大家,javascript 应该是没有办法提供传址的,但问题已经解决了。
    PS: 我使用的方法和8楼的想法很类似,客户也同意了这样的方法。我在ActivX里加了一个两个属性代表bShow和nResult,然后用户在响应这个事件的时候,去修改这个属性的值,ActiveX做了一些调整,在事件被响应后,把属性值赋值给原来的bshow和nResult,问题解决。