如何订阅Windows Media Player事件而不使用额外的脚本标签
How to subscribe to Windows Media Player events without using an extra script tag?
我在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>
标记,我对控件的每个实例感兴趣的每个事件)?
根据这篇MSDN文章(参见命名约定和Automagic章节),您可以在相同的<script>
标记中编写所有事件处理程序,只要将函数命名为objectname::eventname
或objectname.eventname
:
<script language="JScript">
function Player::playStateChange(newState) {
...
}
function Player.currentPlaylistChange(change) {
...
}
</script>
我没有尝试过。当然,这些都是ie特有的