プロジェクトに添付されているオーディオ/ビデオを表示するために、ブートストラップ モーダル ポップアップを使用しています。キャンセル ボタンをクリックすると、モーダルが閉じ、オーディオの再生が停止します。これは Chrome では正しく機能していますが、mozilla と IE の両方で、クリックするとモーダルが閉じますが、aduio/video は引き続き再生されます。
これは、モーダル ポップアップの HAML コードです。
%a{ href: "#", class: "x", title: "Close", :'data-dismiss' => "modal" }
.diagRepeater
= swf_tag "StrobeMediaPlayback",
:width => '620',
:height => (attachment.media_content_type.split('/')[0] == 'audio' ? '65' : '340'),
:flashvars => { :urlIncludesFMSApplicationInstance => "true",
:src => URI.encode("#{request.protocol}#{request.host_with_port}" + attachment.media.url),
:playButtonOverlay => (attachment.media_content_type.split('/')[0] == 'audio' ? 'false' : 'true'),
:controlBarAutoHide => (attachment.media_content_type.split('/')[0] == 'audio' ? 'false' : 'true') },
:parameters => { :allowFullScreen => "true", :wmode => "direct", :allowScriptAccess => "always" }
これは、bootstrap.js ファイルのコードです。
hide: function (e) {
e && e.preventDefault()
var that = this
alert(this.toString());
e = $.Event('hide')
this.$element.trigger(e)
if (!this.isShown || e.isDefaultPrevented()) return
this.isShown = false
$('body').removeClass('modal-open')
escape.call(this)
this.$element.removeClass('in')
$.support.transition && this.$element.hasClass('fade') ?
hideWithTransition.call(this) :
hideModal.call(this)
}