如何订阅Windows Media Player事件而不使用额外的脚本标签

How to subscribe to Windows Media Player events without using an extra script tag?

本文关键字:标签 脚本 Windows 何订阅 Media Player 事件      更新时间:2023-09-26

我在HTML页面中嵌入了一个Windows Media Player控件。

<object width="720"
        height="480"
        id="Player"
        classid="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6">
    <!-- <param> tags left out -->
</object>

要订阅控件中的事件(例如PlayStateChange(newState)),我必须添加<script>标记,如下所示:

<script language="JScript" for="Player" event="PlayStateChange(newState)">
    var newStateText = document.createTextNode('' + newState);
    var playStateContainer = document.getElementById('PlayState');
    while (playStateContainer.firstChild) {
        playStateContainer.removeChild(playStateContainer.firstChild);
    }
    playStateContainer.appendChild(newStateText);
</script>

是否有一种方法可以通过纯JavaScript订阅这些事件(没有额外的<script>标记,我对控件的每个实例感兴趣的每个事件)?

有5个控件实例和5个我想订阅的事件,这将是25个脚本标签。此外,控件被包装在外部JavaScript文件中的一些库代码中。事件处理代码也应该在那里,而不是在客户机应用程序的HTML中。

根据这篇MSDN文章(参见命名约定Automagic章节),您可以在相同的<script>标记中编写所有事件处理程序,只要将函数命名为objectname::eventnameobjectname.eventname:

<script language="JScript">
function Player::playStateChange(newState) {
  ...
}
function Player.currentPlaylistChange(change) {
  ...
}
</script>

我没有尝试过。当然,这些都是ie特有的

相关文章: