javascript/jquery跟activex交互,即与object对象交互

问题生 2012-10-15 11:30:47
我的代码结构大概如下
<div id="center_cameras" >
<div id="camerabox1" class="camerabox" style = "text-align: center;">
<object classid="clsid:D983D6E7-FB20-4B39-8E06-B411D16250FC" width="100%" height="100%" codebase="activeX/DHKActiveX.cab" id="Acamerabox1" name="Acamerabox1"></object>
</div>
<div id="camerabox2" class="camerabox" style = "text-align: center;">
<object classid="clsid:D983D6E7-FB20-4B39-8E06-B411D16250FC" width="100%" height="100%" codebase="activeX/DHKActiveX.cab" id="Acamerabox2" name="Acamerabox2"></object>
</div>

</div>

问题1.
我无法获取控件传出的onclick事件,不管我用
<object style="border:solid 3px #000;" id='DHKActiveX' name = 'DHKActiveX' classid="clsid:D983D6E7-FB20-4B39-8E06-B411D16250FC" onclick="alert(1);" codebase="DHKActiveX.cab" width=352 height=288 align=center></object>

或是
<script   language= 'javascript '   for= 'DHKActiveX'   event= 'onclick()'>
alert( "ss ");
</script>

都不行.
但是我对object标签的父div绑定click却会执行...这是什么原因造成的?

问题2.我这个控件是个播放视频的控件,当控件失去焦点的时候(失去焦点也就是控件父div的border重设了颜色),控件画面会变黑,没有显示了,但当鼠标移动到控件内时,控件又显示了,至今没查出什么原因来.
...全文
255 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
泡泡鱼_ 2012-10-16
  • 打赏
  • 举报
回复
document.getElementById("Acamerabox1").onclick=function(){
alert('1');
}

像上面那样试试。有效果也只是捕捉到在acx上的点击事件而已,但可能并不是你真正需要的

我们对一些常见的控件,比如媒体播放器,使用下面的方法是可以实时更到播放状态的改变的
<script language="javascript" type="text/javascript" event="playStateChange(ps)" for="id"> evtPSChg(ps); </script>


但你的播放器有哪些事件支持,这个就只有你自己才知道了
问题生 2012-10-16
  • 打赏
  • 举报
回复
知道为什么不能相应事件了...不是onclick事件,应该是下边这样,这个Click()是控件那边的返回事件接口名.

<script language= 'javascript ' for= 'DHKActiveX' event= 'Click()'>
alert( "ss ");
</script>
泡泡鱼_ 2012-10-16
  • 打赏
  • 举报
回复
PlayStateChange 事件表示Media Player的播放状态已经改变,Media Player可能的状态有:
0 播放已经停止(mpStopped)
1 播放暂停(mpPaused )
2 正在播放(mpPlaying)
3 正在等待流开始(mpWaiting)
4 向前搜索(mpScanForward)
5 向后搜索(mpScanReverse)
6 向前跳跃(mpSkipForward)
7 向后跳跃(mpSkipReverse)
8 流已经关闭(mpClosed)

我上面只是举个例子。在那个例子中,处理函数是自定义的evtPSChg(ps);里面的ps就是0~8。然后通过这些状态值去处理相就的事件的。比如:

function evtPSChg(f){
switch(f){
case 8:
//比如状态值为8,表示当前播放已经结束了。如果是做歌曲播放的话,在这里就可以执行播放下一首的操作了
break;
}
}


这只是Media Player的事件,你的acx不知道是怎么样的
问题生 2012-10-16
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

JScript code
document.getElementById("Acamerabox1").onclick=function(){
alert('1');
}

像上面那样试试。有效果也只是捕捉到在acx上的点击事件而已,但可能并不是你真正需要的

我们对一些常见的控件,比如媒体播放器,使用下面的方法是可以实时更到播放状态的改变的
JScript code
<sc……
[/Quote]
event="playStateChange(ps)"

这个playStateChange(ps)是事件么?还是控件中相应事件的函数?

87,904

社区成员

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

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