双击在IE中播放Windows媒体对象时未触发的事件
问题描述:
我正在使用Windows Media ActiveX对象播放视频的媒体播放器,并且我需要知道视频何时全屏显示。我无法找到全屏幕事件,所以我不得不寻找解决方法。作为解决方案的一部分,我需要能够获得(并且最好拦截)使媒体播放器全屏显示的双击事件,但是当播放器开始播放时我无法获得该事件,可能是因为玩家可以通过它来了解何时全屏显示。双击在IE中播放Windows媒体对象时未触发的事件
我已经尝试了很多不同的东西来获取事件,而它玩:
activeXElement.attachEvent('ondblclick',function(){alert('Double Click')});
activeXElement.attachEvent('dblclick',function(){alert('Double Click')});
activeXElement.attachEvent('ondoubleclick',function(){alert('Double Click')});
activeXElement.attachEvent('doubleclick',function(){alert('Double Click')});
activeXElement.attachEvent('DoubleClick',function(){alert('Double Click')});
activeXElement.attachEvent('onDoubleClick',function(){alert('Double Click')});
activeXElement.attachEvent('OnDoubleClick',function(){alert('Double Click')});
activeXElement.ondblclick=function(){alert('Double Click')};
activeXElement.dblclick=function(){alert('Double Click')};
activeXElement.ondoubleclick=function(){alert('Double Click')};
activeXElement.doubleclick=function(){alert('Double Click')};
activeXElement.DoubleClick=function(){alert('Double Click')};
activeXElement.onDoubleClick=function(){alert('Double Click')};
activeXElement.OnDoubleClick=function(){alert('Double Click')};
当它尚未开始播放,以下两项工作:
activeXElement.attachEvent('doubleclick',function(){alert('Double Click')});
activeXElement.attachEvent('DoubleClick',function(){alert('Double Click')});
他们都不是在播放时工作。有人在播放ActiveX对象时如何获得双击事件有任何想法吗?
答
我最终为此问题创建了解决方法。我在此发布可能会遇到此问题的其他人。
我监听点击事件,当单击元素时,隐藏控件,就像我想在屏幕全屏时一样。然后,稍后(给双击的时间),检查它是否全屏,并且,如果它没有再次隐藏控件。我必须暂时显示控件,因为一旦全屏显示,我无法隐藏或显示控件。
这里是我使用的代码:
activeXElement.attachEvent('click',
function(nButton){
if(nButton!=1)return;// Not left click
// I can't set uiMode when full screen.
// Set it now and set it back later if needed.
activeXElement.uiMode='full';
setTimeout(
function(){
if(activeXElement.fullScreen){
// It went full screen.
// Do some stuff...
}
else activeXElement.uiMode='none';
}
,750);
}
);