2012-04-27 15 views
0
<video controls="controls" width="640" preload="none" poster="{_file.F_FILE_THUMB_IMAGE}" id="{_file.U_PLAYER_ID}" onclick="this.play();this.onclick=null;" /> 

fancyboxを開いたときに上記を使ってビデオを再生しようとしています。現時点ではこれを行いますが、fancyboxを閉じてから再び開くと、ビデオはthis.onclick = nullのために再び再生されません。 partファンシーボックスが閉じられているときにonclickを有効にする方法

without this.onclick = null;再生中のビデオをクリックするたびに、そのオンクリックがそれに干渉します。一時停止ボタンをクリックしてもビデオは一時停止しません。 。。私はonclickの= "this.playを()必要

;動画はAndroidデバイスで再生するようfancyboxがポップアップしたときにそれ以外の場合はそれがすべてでビデオを再生することを拒否し

自動再生videoタグではありませんすべての動画がdivに隠されていてページに複数のものがあるので、ページが読み込まれたときにそれらがすべて再生されるようにするオプション。

私はこれにこだわり、何か助けが必要ですこれを回避するには?

+0

onclick = "this.play(); this.onclick = null;"を変更してみてください。 toclick = "this.play();" – KBN

+0

私はすでに上記のようにonclick = "this.play()"を試してみましたが、それはAndroidをビデオ再生の対象としていますが、Firefoxに干渉します。ファンシーボックスビデオをクリックするたびに、オンクリックがトリガーされ、ビデオは一時停止せずに保持されます。一時停止ボタンを押すと同じことが起こりますが、ビデオはonclickで再生するように求められているため一時停止しません。 –

+0

その場合は、一時停止、再生などの切り替えを管理するために、より長いjavascript関数を記述する必要があります。あるいは、Gregのソリューションを使用することもできます。 – KBN

答えて

2

するには、onclickイベントをリセットする機能をonClosedイベントハンドラを追加する必要があります。

$("#exemple").fancybox({ 
    'onClosed' : function() { 
     $("#example").attr('onclick',"this.play();this.onclick=null;"); 
    } 
}); 
+0

これはまさに私の後ろにあるように見えますが、onclick属性を追加したくないようです。また、コールバックは[fancyapps](http://fancyapps.com/fancybox/#docs)によると 'afterClose'と呼ばれています –

+0

なぜ最初に動作しなかったのか分かりませんが、今はそうです。どうもありがとうございました。 –

+0

私は 'afterClose'の代わりに 'beforeLoad'を使用しなければなりませんでした。私はまた、onclickをビデオタグにハードコードする必要がありました。そうでなければ、すぐに追加されていないように、Android用のビデオ用にFancyboxを2回ロードしました。したがって、ハードコードされたonclickは最初の負荷を処理し、その上にメソッドを追加すると、onclickイベントはnullになった後再び使用可能になりました。 –

1

試してみる

あなたはfancyboxを作成するとき

onclick="this.play();this.onclick=null;" 
//OR 
onclick="this.play(); return false;" 
+0

onclick = "this.play(); falseを返します。"これまでのところおそらく最良のことです。唯一の欠点は、ビデオのすべてのコントロールがボリュームスライダーを除いて何もしないことです。動画の再生中は、ミュート、一時停止/再生がまったく機能しません。 このbtwを使用していただきありがとうございます。 –

関連する問題