请教个问题;
通过ATL实现一个Edit加密控件,现在由于网页注册时需要利用这个控件,注册用户输入密码时,根据密码的内容计算密码强度。
通过连接点,封装了一个接口给js页面,当在控件中输入内容时,计算密码强度,返回一个强度值调用js函数,js函数根据强度值给出提示信息。
由于采用连接点,所以js函数会有控件的id,比如控件id为ATLCTRL,则对应js函数就是
function ATLCTRL::pass(passLevel){},由于需要最后加载控件object所以加载页面会先加载这个function,由于ATLCTRL还没加载,导致页面会显示有错误,采用onload该函数,页面好像调用不了。
我自己的测试页面是能够每输入一位密码,就返回密码强度,但是写jsp页面的兄弟,总是因为::这个表示符,有问题,他说他们把object放在容器里面了,不知道有没有什么解决方法?
或者ATL中能不能封出一个接口,直接调用function pass(passLevel){},而不需要ATLCTRL::这些内容,

解决方案 »

  1.   

    可以用事件的方式 ,为你的加密控件增加一个事件,然后再这个事件中 调用JS 函数。JS 可以这么写: <OBJECT ID="TestCom" 
    CLASSID="clsid:A6260D6F-A0F0-4277-84F9-DA3449042292" >
    </OBJECT>
    <script language="JavaScript" for="TestCom" event="Event1()">
              alert("Event Arrive");  
    //在这里调用你的 js 密码强度函数       
      </script>
      

  2.   

    我有告诉java的开发人员用
    <script language="JavaScript" for="window" event="onload">
    </script>
    还是不行,
    后来他们添加了一个判断object语句,好像可以了,
    连接点没有做什么修改