BrightCoveのJquery Fancyboxの問題。AddeventListener関数
-
28-10-2019 - |
質問
さて、私が抱えている問題があります。私はBrightCoveからのビデオを持っています。PanceBox2.0モーダルウィンドウを閉じるためにAPIからリスナーを追加してイベントリスナーを追加しています。しかし、ファンシーボックスがdivからコンテンツを複製しているが、javascriptではなく複製しているため、イベントリスナーはアクティブ化されていないため、リスナーは起こっていません。
これがコードです
<!-- Start Brightcove API -->
<script language="JavaScript" type="text/javascript" src="http://admin.brightcove.com/js/APIModules_all.js"></script>
<script type="text/javascript">
var bcExp;
var modVP;
function onTemplateLoaded(experienceID) {
alert("EVENT: TEMPLATE_LOAD");
bcExp = brightcove.getExperience(experienceID);
modVP = bcExp.getModule(APIModules.VIDEO_PLAYER);
modVP.addEventListener(
BCMediaEvent.COMPLETE,
function(event) {
alert("EVENT: Close Modal Activated");
jQuery.fancybox.close(true);
}
);
}
/*
function onTemplateLoaded(experienceID) {
alert("EVENT: TEMPLATE_LOAD");
bcExp = brightcove.getExperience(experienceID);
modVP = bcExp.getModule(APIModules.VIDEO_PLAYER);
modVP.addEventListener(BCMediaEvent.COMPLETE, closeModal);
}
function closeModal(event) {
alert("EVENT: Close Modal Activated");
jQuery.fancybox.close(true);
}
*/
</script>
<!-- End Brightcove API -->
何かアイデアや解決策はありますか?
解決 2
メッセージをありがとうが、私は実際にそれが私の側の巨大な愚かさだったと私はこのようにファンシーボックスと呼んでいました
jQuery.document().ready(function() {
if (document.location.hash === '#video') {
jQuery.fancybox.open([{
content: jQuery('.video').html(),
残りは重要ではありません。
他のヒント
Vimeoでこれを行いましたが、通常、ビデオを実行するスクリプトを使用して分離されたHTMLページを作成します。次に、IFRAMEモードを使用してFancyBoxでそのページを開きます(type:'iframe'
).
Vimeosのリスナーのために私が持っている:
function endOfVideo() {
parent.$.fancybox.close();
}
vimeoAPI.api_addEventListener("onFinish","endOfVideo");
どちらがトリックをしますか。
類似点を見ると、私はあなたの場合、これはうまくいくべきだと思います:
modVP.addEventListener(
BCMediaEvent.COMPLETE, function(){parent.jQuery.fancybox.close();}
);
とにかく、適切な形式と構文についてはAPIのドキュメントを確認しますが jQuery.fancybox.close();
また parent.jQuery.fancybox.close();
iframeを使用する場合は、いずれにしても動作するはずです
所属していません StackOverflow