为什么不采用 js去调 active 呢?

解决方案 »

  1.   


    想IE界面动态更新可以用JS定时调用Activex中的函数,来检查是否有新的数据传过来也行,但非常浪费资源我想当Activex通过Socket接收服务器传过来的数据时,才调用JS函数,更新页面
    已经找到解决办法了,测试成功了,可以通过Activex更新HTML中的控件,或者调用HTML中的JS函数
    增加浏览引用c:\windows\system32\SHDocVw.dll 
    增加.Net引用Microsoft.mshtml 
    using mshtml; //获得所有ie进程。因为windows下资源窗口使用ie内核,所以不光是我们通常指的web浏览器,它还包括你打开我的电脑这样的窗口 
    SHDocVw.ShellWindows sws = new SHDocVw.ShellWindows(); //遍历所有IE进程 
    foreach (SHDocVw.InternetExplorer iw in sws) 

           //iw.LocationName是IE窗口标题,也就是当前想更改的页面<title></title>中的值
           if (iw.LocationName == "我是title") 
           { 
                   mshtml.HTMLDocument doc = (mshtml.HTMLDocument)iw.Document;                 
                     //改变HTML控件中ID是b的值 
                     (doc.getElementById("b")).innerHTML = "ActiveX改变HTML里控件的值"; 
                   
                   //调用HTML中的JS函数change(a) 
                   string a = "ActiveX调用JS函数"; 
                   mshtml.IHTMLWindow2 win = (mshtml.IHTMLWindow2)doc.parentWindow; 
                   win.execScript("change('" + a + "')", "JavaScript"); 
            } 
      

  2.   

    又遇到个问题
    在本机windows2003下可以运行,运行前要更改安全设置里的ActiveX选项但是在公司里的windowsXP下,改了选项,安全改得很低,也会出现"对象不支持此属性或方法"的提示请问是怎么回事呢?