gpt4 book ai didi

Javascript/Jquery 问题 - playStateChange,Mediaplayer 对象 IE9 ... 试图让 Jquery bind() 处理此事件 ...继续阅读

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:36:40 25 4
gpt4 key购买 nike

好的,问题来了....

我首先试图排除是否为该客户端使用 flash 播放器、html5 播放器或媒体播放器..... HTML5 似乎提供了无插件的实现,所以我决定选择退出 Flash .. ..并且正在考虑 HTML5 路线......一切都很好......做了一个很好的播放器,它也是跨浏览器并且很好地照顾了编解码器但是哎呀......意识到 html5 无法流式传输 ASX ......所以它回到了旧的 windows mediaplayer 路线....我别无选择....

我放了一个 javascript 函数,它只是一个警报,只要媒体播放器改变状态就应该被触发(比如从播放开始你暂停它......)

function WMP_status()
{
alert("state Changed");
}

我在 html 页面上嵌入了一个媒体播放器对象,并在 javascript 中创建了一个别名以编程方式访问该对象并通过 javascript 获得对其的控制......就像这样......

var WMP=document.getElementById("mediaplayer");

然后轮到捕捉媒体播放器的状态了……所以我需要某种形式的事件……所以我像这样注册了事件……并且工作正常……

WMP.attachEvent("playStateChange", WMP_status);
// Note ... WMP.detachEvent("playStateChange", WMP_status); ... doesn't always detach events...

我在 IE 中事件未分离的问题仍然存在(去图)但令我惊讶的是我意识到从 ie9 .... addEventListener 也应该作为 javascript 支持的一部分包括在内所以我尝试了下一行显然应该代表上述但没有喜悦.....

WMP.addEventListener("playStateChange", WMP_status , false); 

我可能认为 addEventListener 在 IE9 中仍然没有正确实现,所以我尝试像这样使用 JQuery bind() 方法......但仍然没有快乐......

$(WMP).bind("playStateChange", WMP_status); 

我也尝试了这两种变体

(a) 仍然没有喜悦....

$(WMP).bind("playStateChange", "WMP_status"); 

(b) 仍然没有喜悦......

$(WMP).bind("playStateChange", function(){WMP_status()}); 

我尝试了这些来消除各种可能性......jquery 网站上没有关于我是否可以输入函数名称的信息......所以我也尝试输入一个匿名的......

无论如何……我真的更喜欢使用 Jquery 机制来处理事件,尤其是因为它更跨浏览器……谁能帮我解决这个问题?我也采用了这种动态附加事件的方式,因为我将通过 jquery 添加/删除元素......并且 remove() 也会方便地分离事件......

非常感谢艾尔

最佳答案

根据这个site使用像 jQuery 这样的 javascript 库绑定(bind)到 wmp-plugin 将无法工作,因为缺少 on 前缀(将读作“onPlayStateChange”),这通常是所有事件名称的前缀。

像 jQuery 这样的库考虑了这个规则......并且实际上注册了一个不存在的事件。

如果是这样,那么您需要继续使用 attachEvent

关于Javascript/Jquery 问题 - playStateChange,Mediaplayer 对象 IE9 ... 试图让 Jquery bind() 处理此事件 ...继续阅读,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6804432/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com