onEnded 事件未在 dojo 对话框中触发

Posted

技术标签:

【中文标题】onEnded 事件未在 dojo 对话框中触发【英文标题】:onEnded event not firing in dojo dialog 【发布时间】: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););

【问题讨论】:

【参考方案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

以上是关于onEnded 事件未在 dojo 对话框中触发的主要内容,如果未能解决你的问题,请参考以下文章

如果我嵌入标签,onEnded 事件将不起作用

播放多个音视频文件

是否可以通过代码触发特定于 dojo 的事件?

FileSystemWatcher 事件未在 WPF 应用程序中触发

dojo.dijit.Button 触发 onclick 事件两次

在 Dojo CheckBox 中手动触发点击事件