【问题标题】:onEnded event not firing in dojo dialogonEnded 事件未在 dojo 对话框中触发
【发布时间】:2012-01-13 11:47:49
【问题描述】:

我正在尝试在电影播放完毕时触发一个事件。单击链接并在 dojo 对话框中时会显示该影片。我正在使用标签播放电影,并尝试使用 dojo connect 在电影播放完毕时使用 onEnded 属性显示警报。然而什么也没有发生。关于我的问题的任何想法?代码如下:

dialog = new dijit.Dialog({
    content: "<embed id='video' src='http://www.tizag.com/files/html/htmlexample.mpeg' autostart='true' controller='false'/>"
});
dialog.show();
dojo.connect(dojo.byId("video"), "onEnded", function(e){alert(e);});

【问题讨论】:

    标签: javascript html events dojo embed


    【解决方案1】:

    通常,现有的 DOM 事件是 lowercased,dijit 自定义事件是 camelCased。假设我的搜索正确,绑定到的正确事件是onended,没有大写的“E”:

    Detect when an HTML5 video finishes

    dojo.connect(dojo.byId("video"), "onended", function(e){alert(e);});
    

    【讨论】:

    • 我尝试了您发布的代码,但仍然无法正常工作。出现对话框,播放视频,但当视频结束时,不会出现警报。
    • 如果不使用dojo.connect会怎样? document.getElementById('video').onended = fucntion(){ alert('aaa')}
    • 不幸的是,这也不起作用。这可能是范围界定问题吗?我应该在对话框内容中定义 dojo.connect 吗?顺便感谢您的帮助。
    • 在进一步测试上述 solon 后,如果视频不是 url(即存储在本地),则不使用 dojo.connect 可以正常工作。这对我来说已经足够好了,所以我要关闭它。非常感谢您的帮助@missingno
    猜你喜欢
    • 2015-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多