追加のスクリプト タグを使用せずに Windows Media Player イベントをサブスクライブするにはどうすればよいですか?
-
21-12-2019 - |
質問
Windows Media Player コントロールを HTML ページに埋め込んでいます。
<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 記事 (セクションを参照 命名規則 そして オートマジック)、すべてのイベント ハンドラーを同じ内に記述することができます。 <script>
タグ、関数に名前を付ける場合 objectname::eventname
または objectname.eventname
:
<script language="JScript">
function Player::playStateChange(newState) {
...
}
function Player.currentPlaylistChange(change) {
...
}
</script>
私はこれを試しませんでしたが。そしてもちろん、これはすべて IE 固有のものです。
所属していません StackOverflow