日期:2014-05-17  浏览次数:20418 次

跪求,俯卧撑求,爬求,跳求,躺着求,玩命求!!!javascript如何捕获Activex的事件!!!
有个heloword的windows窗体控件我把它弄为UserControl1.cs 
代码如下:
C# code

 public delegate void ClickEventHandler(object sender, EventArgs e);
        public event ClickEventHandler Click;
        public string OutputParameter
        {
            get
            {
                //返回你的数据,这个括号里放你要返回的值
                return ("sss");
            }
        }


        private void button2_Click(object sender, EventArgs e)
        {
            if (Click != null)
            {
                //事件发生
                Click(this, e);
            }
        }



然后我在bs页面.aspx里面代码如下
C# code

<object id="csharpActiveX" 
                classid="clsid:F742E011-3467-4447-B069-C5BF3D148EF9" 
                codebase="Setup.exe" Width="400" Height="400" ></object>

<SCRIPT language="javascript" type="text/javascript" for="csharpActiveX" event="Click">
            <!-- {
                                   alert('11111');
                               
            -->
            </SCRIPT>






可是没有弹出对话框,谁知道怎么回事啊?

------解决方案--------------------
不知道 你的页面代码想干什么
------解决方案--------------------
codebase你调用的不应该是exe把,应该是一个dll啊
------解决方案--------------------
codebase错误貌似没什么关系的
在button2的Click中增加parent.调用所在页面的脚本

vb是这样的,c#没做过
问题是你确保客户端安装了framework?
否则activex怎么运行!?
------解决方案--------------------
點了之後有什麽反應。。。
------解决方案--------------------
各种求。。。哈哈

DEMO
------解决方案--------------------
你看这样行不行,在c#中声明一个函数,该函数的参数为object jfunc,该函数作用为将一个delegate = jfunc,然后在javascript中调用该函数,将javascript的一个函数名传入jfunc。这样再执行c#中的delegate尝试一下。
------解决方案--------------------
可能存在的你的activex激活的原因
------解决方案--------------------
你的用户控件是不是少东西啊
参照http://apps.hi.baidu.com/share/detail/18677476 一下吧
------解决方案--------------------
SCRIPT language="javascript" type="text/javascript" for="csharpActiveX" event="Click">
呵呵,我看的很怪异
------解决方案--------------------
能响应,我准备吧头砍下来 呵呵
------解决方案--------------------
同學activex 不是這樣寫的
再說用c#寫activex本身就不具可行性 c#需要.netFramework才能運行 
你能確保客戶端都裝了.netFramework 嗎
所以你再這個問題上糾結 完全是浪費時間
參考
------解决方案--------------------
event="Click(sender,e)"
------解决方案--------------------
你最好定义委托时用基本的类型(int string 等多些参数没关系),否则你的考虑控件的列集合散集
------解决方案--------------------
是需要这个吗?示例: 
<object classid="CLSID:F896679F-13FB-49FD-87E8-2213DD41DF4E"
 id=DefaultOcxName width=100% height=100%
 codebase="http://CLISOFT-XUJIAN/ETBEditorProj.cab#version=1,0,0,0" hspace=0
 vspace=0 VIEWASTEXT>
 <param name=Visible value=0>