ActiveX控件的事件响应??

hyonghyong 2002-10-30 11:49:21
各位大师:

我不懂javascript,这里有二个问题求教。


有一个ActiveX控件的事件响应过程是VBS脚本写的,我想改用javascript来书写,哪一位大师能告诉我??

VBS代码如下:
<HTML>
<HEAD>
<TITLE>ATL 3.0 test page for object XPanel</TITLE>
</HEAD>
<BODY >
<SCRIPT LANGUAGE="VBScript">
<!--
Sub XPanel_WCHC(bstr)
MsgBox bstr & " and VBScript"
end sub
-->
</SCRIPT>
<OBJECT ID="XPanel"
CLASSID="CLSID:7D108A71-B8F5-11D2-B7EB-00E02916C424">
</OBJECT>
</BODY>
</HTML>
/////////////////////
点击控件时就执行事件处理过程。
以上是测试通过了的。
请问怎样将它改为javascript的代码??
////////////////////////////
第二问题是:
在我的Web页中不想用<object>标记,改用ActiveXObject()函数,请问怎样在我的代码中添加如上的事件处理过程???
我的javascript脚本如下:
<SCRIPT language="Javascript">
var hsyy;
function isSetup()
{
try
{
hsyy=new ActiveXObject("Hsyyhc.Hsyh.1");
}
catch(e)
{
if(typeof(hsyy)!="object")
hsyy=null;
}
if (hsyy==null)
return false;
else
{
hsyy.ChuShiHua();
return true;
}
}
isSetup();
</SCRIPT>
...全文
243 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
潇洒 2002-10-31
  • 打赏
  • 举报
回复
其实声明了 hsyy= ** new object 后, 就应该和 ID 一样用了.

关键是我搞不懂 .WCHC(bstr) 这个怎么换... WCHC 是什么事件?
里面的 bstr 又是什么?
hyonghyong 2002-10-31
  • 打赏
  • 举报
回复
请各位注意:
控件的应该是没有什么问题了,因为它己通过VBS的代码测试了的。

不知道哪位能给我详细的解释,我可以将控件发过来。
hyonghyong 2002-10-31
  • 打赏
  • 举报
回复
goldenlove(潇洒.net) :
WCHC(bstr)是一个自定义的控件事件。
bstr是该事件的参数而己
Go_Rush 2002-10-31
  • 打赏
  • 举报
回复
对于文档,窗口级的对象如 document,window以及 span,div,object对象
javascript最好用:

function 对象ID::事件名(){
//时间处理代码
}

比较稳妥,你看看下面的代码就知道了





<OBJECT id="MSWinsockControl1" classid=clsid:248DD896-BB45-11CF-9ABC-0080C7E7B78D VIEWASTEXT>
<PARAM NAME="_ExtentX" VALUE="741">
<PARAM NAME="_ExtentY" VALUE="741">
<PARAM NAME="_Version" VALUE="393216">
<PARAM NAME="Protocol" VALUE="0">
<PARAM NAME="RemoteHost" VALUE="">
<PARAM NAME="RemotePort" VALUE="0">
<PARAM NAME="LocalPort" VALUE="0">
</OBJECT>
<span id=oTest>Click Me!!</span>

<SCRIPT>
function MSWinsockControl1::Connect(){
alert("连结成功");
}

function MSWinsockControl1::Error(){
alert("Winsock错误");
}

function window::onload(){
MSWinsockControl1.Connect("127.0.0.1",80);
}

function oTest::onclick(){
alert("事件响应代码")
}

</SCRIPT>



烂笔头Danky 2002-10-30
  • 打赏
  • 举报
回复
你既然说你不惜javascript,那代码是vbx的还是js的又怎样呢?
hyonghyong 2002-10-30
  • 打赏
  • 举报
回复
各位注意:
我的代码中主要不想用<object>标记,所以才用了javascript代码,这样代码中便没有控件ID的标识可用。
而用
function hsyy.WCHC(bstr)
{
alert(bstr + " and JavaScript ")
}
并没有测试通过,但在VBS代码的WEB页中却测试通过了,因此请哪位能告诉我相应的javascript的代码。

告诉Email我可以将控件发过来。



blues-star 2002-10-30
  • 打赏
  • 举报
回复
<SCRIPT LANGUAGE=javascript FOR=MSWinsockControl1 EVENT=Error>

关键在这里,建议你用interdev写,很方便的,上面的就是用interdev写出来的,程序连接本机的80端口,如果你有WEB服务器的话会提示成功,否则会提示失败。
blues-star 2002-10-30
  • 打赏
  • 举报
回复
<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
<TITLE></TITLE>
<SCRIPT ID=clientEventHandlersJS LANGUAGE=javascript>
<!--

function MSWinsockControl1_Connect() {
alert("Á¬½Ó³É¹¦!")
}

function MSWinsockControl1_Error() {
alert("Á¬½Óʧ°Ü!")
}

//-->
</SCRIPT>
<SCRIPT LANGUAGE=javascript FOR=MSWinsockControl1 EVENT=Connect>
<!--
MSWinsockControl1_Connect()
//-->
</SCRIPT>
<SCRIPT LANGUAGE=javascript FOR=MSWinsockControl1 EVENT=Error>
<!--
MSWinsockControl1_Error()
//-->
</SCRIPT>
</HEAD>
<BODY>

<OBJECT id=MSWinsockControl1 classid=clsid:248DD896-BB45-11CF-9ABC-0080C7E7B78D VIEWASTEXT>
<PARAM NAME="_ExtentX" VALUE="741">
<PARAM NAME="_ExtentY" VALUE="741">
<PARAM NAME="_Version" VALUE="393216">
<PARAM NAME="Protocol" VALUE="0">
<PARAM NAME="RemoteHost" VALUE="">
<PARAM NAME="RemotePort" VALUE="0">
<PARAM NAME="LocalPort" VALUE="0">
</OBJECT>

</BODY>
<script>
document.body.onload = Function('MSWinsockControl1.Connect("127.0.0.1",80);');
</script>
</HTML>
hyonghyong 2002-10-30
  • 打赏
  • 举报
回复
goldenlove(潇洒.net):
按照你的方法,我还是没有调试好,告诉你的email,我将控件发给你,帮我解决这个问题。
谢谢!!!

潇洒 2002-10-30
  • 打赏
  • 举报
回复
1. 你的控件在我这无法调试, 你试下下面这个代码行不行了.
<HTML>
<HEAD>
<TITLE>ATL 3.0 test page for object XPanel</TITLE>
</HEAD>
<BODY >

<OBJECT ID="XPanel"
CLASSID="CLSID:7D108A71-B8F5-11D2-B7EB-00E02916C424">
</OBJECT>
<SCRIPT>
<!--
function XPanel.onWCHC(bstr){
alert(bstr + " and JavaScript")
}
-->
</SCRIPT>
</BODY>
</HTML>
=======================================

第二个也是一样, 定义了以后, 就可以直接用它的名字了.
<SCRIPT language="Javascript">
var hsyy;
function isSetup()
{
try
{
hsyy=new ActiveXObject("Hsyyhc.Hsyh.1");

}
catch(e)
{
if(typeof(hsyy)!="object")
hsyy=null;
}
if (hsyy==null)
return false;
else
{
hsyy.ChuShiHua();
return true;
}
}

function hsyy.onWCHC(bstr){
alert(bstr + " and JavaScript")
}

isSetup();
</SCRIPT>
hyonghyong 2002-10-30
  • 打赏
  • 举报
回复
danky():
你好!
我用javascript的原因是为了动态管理控件。
你能告诉我相应的javascript的代码吗??

谢谢

87,955

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧