4

私は現在、ビデオ JS を使用してビデオ ファイルを提供しています。ビデオ ソースは、訪問者がクリックするアイテムに応じて変化します。ページが読み込まれると、次のコードを実行して、videoplayer オブジェクトを変数にバインドします。

var videoPlayer = _V_("my_video_1");

これは、IE7 と IE8 を除くすべてのブラウザーで完全に機能します。私は自分のコードをデバッグしてきましたが、ready イベントで動かなくなったようです。コンソールにエラーは残りませんが。しかし、ready 関数内のアラートやアクションは無視され、ソースが実際に変更されているのはその時点です。これは、ソースを変更するために使用するコードです。

videoPlayer.ready(function(){
    var myPlayer = this;
    myPlayer.src([
        { type: "video/mp4", src: videoFile + ".mp4" },
        { type: "video/ogg", src: videoFile + ".ogv" }
    ]);
    myPlayer.play();
    myPlayer.volume(0.2);
    $('div#videoViewer').show();
});

私は他の 2 つのページで同じコードを使用してきましたが、これを機能させるのに問題はありませんでした。現在、私と同僚の両方がこれを何時間もデバッグしてきましたが、解決策にはまったく近づきません。

ここの誰かが、ready イベントが無視される原因となっている可能性のある考えを持っていますか? 問題の原因を突き止めるために、他のすべてのスクリプトを無効にしようとしましたが、うまくいきませんでした。

これを修正するのに役立つ回答に非常に感謝しています。

4

2 に答える 2

4

私も同じ問題を抱えていました。私の場合、ラッパーdivがに設定されていたため、IE8ではreadyイベントは発生しませんでしたdisplay:none。ラッパーが表示されている場合、readyイベントは期待どおりに発生します。この問題はIE9では発生しませんでした。

于 2012-11-20T21:48:38.710 に答える
0

私は同じ問題を抱えていました。私の解決策は、IDの代わりにDOM要素をvideojs関数に直接渡すことでした。

//having this
<video id="VIDEO" ....>

//this fails
videojs('VIDEO').ready(...)

// this works!!
videojs(document.getElementById('VIDEO')).ready(...)

それが役立つことを願っています:D

于 2017-01-04T12:49:49.160 に答える