2012-04-08 14 views
1

audioplayerを直接指すリンクを開くと、すべてのブラウザがそれらを再生します。 Audioplayerはネストされたdivsの で、swfを指すembed要素です。iframe bug with audioplayer

しかし、いくつかのページに書き込んで埋め込むと、プレーヤーは表示されますが、IE8では再生されません。 IE9を含む他のすべての主要なブラウザで動作します。

BTW Safariでは動作しませんでしたが、Safariでは幅と高さを十分に大きく設定してIE8では固定しませんでした。

<iframe width="500" height="50" src="http://localhost/getAudio?id=DB04DDA8-C7C9-46E6-B0B3-7A0E0B5C9A55" frameBorder="0" scrolling="no"> 

<html class=" js no-flexbox no-canvas no-canvastext no-webgl no-touch no-geolocation postmessage no-websqldatabase no-indexeddb hashchange no-history draganddrop no-websockets no-rgba no-hsla no-multiplebgs no-backgroundsize no-borderimage no-borderradius no-boxshadow no-textshadow no-opacity no-cssanimations no-csscolumns no-cssgradients no-cssreflections no-csstransforms no-csstransforms3d no-csstransitions fontface generatedcontent no-video no-audio localstorage sessionstorage no-webworkers no-applicationcache no-svg no-inlinesvg no-smil no-svgclippaths" xmlns="http://www.w3.org/1999/xhtml"> 

<HEAD> 
<STYLE class=iepp-printshim media=print></STYLE> 
<TITLE>Bethoven symphony # 9</TITLE> 
<META charset=utf-8> 
<SCRIPT type=text/javascript src="/celenium/scripts/libs/jquery-latest.js"></SCRIPT> 


<SCRIPT type=text/javascript src="/celenium/scripts/ClientCompatibility.js"></SCRIPT> 

<STYLE type=text/css>BODY { 
    PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; PADDING-TOP: 0px 
} 
</STYLE> 
</HEAD> 
<BODY> 
<DIV id=asset01> 
<SCRIPT type=text/javascript> 
      $.ajax({ 
       url: '/celenium/audioplayer_html5/getPlayer.asp?o=DB04DDA8-C7C9-46E6-B0B3-7A0E0B5C9A55', 
       dataType: 'jsonp', 
       cache: true, 
       jsonpCallback: 'sdlaudioplayer', 
       success: function (data) { 
        $('#asset01').append($(data.html)); 
       } 
      });  
     </SCRIPT> 
<LINK rel=stylesheet href="http://localhost/celenium/audioplayer_html5/css/defaultplayer.css" media=screen> 
<DIV id=sdlaudioplayer class=player_container> 
<DIV class=player_metabar></DIV> 
<DIV class=player_controls> 
<DIV style="DISPLAY: block" class=player_controls_play jQuery1707536265854468271="1"></DIV> 
<DIV style="DISPLAY: none" class=player_controls_pause jQuery1707536265854468271="2"></DIV> 
<DIV style="DISPLAY: none" class=player_controls_prev jQuery1707536265854468271="3"></DIV> 
<DIV style="DISPLAY: none" class=player_controls_next jQuery1707536265854468271="4"></DIV> 
<DIV style="WIDTH: 297px; DISPLAY: block" class=player_controls_scrubber jQuery1707536265854468271="5"> 
<DIV class=player_controls_scrubber_loading jQuery1707536265854468271="13"> 
<DIV class=player_controls_scrubber_loaded></DIV> 
<DIV class=player_controls_scrubber_playhead></DIV></DIV></DIV> 
<DIV style="DISPLAY: block" class=player_controls_timing jQuery1707536265854468271="6"><SPAN class=player_controls_timing_position>0:00</SPAN>/<SPAN class=player_controls_timing_total>0:00</SPAN></DIV> 
<DIV style="DISPLAY: block" class=player_controls_volume jQuery1707536265854468271="7"> 
<DIV class=player_controls_volume_mute jQuery1707536265854468271="8"></DIV> 
<DIV class=player_controls_volume_slider jQuery1707536265854468271="12"> 
<DIV style="WIDTH: 50%" class=player_controls_volume_marker jQuery1707536265854468271="11"></DIV> 
<DIV style="LEFT: 28px" class=player_controls_volume_knob jQuery1707536265854468271="10"></DIV></DIV> 
<DIV class=player_controls_volume_max jQuery1707536265854468271="9"></DIV></DIV></DIV></DIV> 
<DIV id=sm2-container class="high_performance movieContainer swf_loaded"><!-- SM2 flash goes here --> 
<DIV></DIV> 
<DIV class=sm2-object-box> 
<OBJECT id=sm2movie title="JS/Flash audio component (SoundManager 2)" codeBase="download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" classid=clsid:D27CDB6E-AE6D-11cf-96B8-444553540000 data="/celenium/audioplayer_html5/swf/soundmanager2_flash9.swf" width=auto type=application/x-shockwave-flash height=auto></OBJECT></DIV></DIV></DIV></BODY> 
+1

投稿コードは常に必要です。整備士に車の修理を依頼するのと同じですが、ガソリンとイグニッションキーのないガレージに車を残しておきます。 :) – jmort253

+0

ここに行く。我々は2つの呼び出しを持っています。まずiframeで、次にajaxで2番目。そのajaxはdivのinnerHTMLを下に埋めます。 – Nickolodeon

答えて

1

IE8は、オーディオタグやビデオタグなどのHTML5機能の多くをサポートしていない点で、最新のブラウザとは言えません。

このHTML5 Tutorialサイトには、Objectタグを使用してIE8でオーディオをサポートする方法の例があります。それはプレイヤーをロードするには、Flashを使用していますので、これは、IE8のクライアントには、Flashがインストールされていることを必要とすることに留意してください

<audio controls> 
    <source src="vincent.mp3" type="audio/mpeg"/> 
    <source src="vincent.ogg" type="audio/ogg"/> 
    <object type="application/x-shockwave-flash" data="media/OriginalMusicPlayer.swf" 
     width="225" height="86"> 
     <param name="movie" value="media/OriginalMusicPlayer.swf"/> 
     <param name="FlashVars" value="mediaPath=vincent.mp3" /> 
    </object> 
</audio> 

:以下の例を参照してください。

クライアントFlashがインストールされていない場合は、お使いの土壇場の努力は、単にダウンロードリンクを提供し、ユーザーが音声ファイル再生するには、オペレーティング・システムのデフォルトのプレーヤーを使用できるようにすることです:として

<audio controls> 
    <source src="vincent.mp3" type="audio/mpeg"/> 
    <source src="vincent.ogg" type="audio/ogg"/> 
    <object type="application/x-shockwave-flash" data="media/OriginalMusicPlayer.swf" 
     width="225" height="86"> 
     <param name="movie" value="media/OriginalMusicPlayer.swf"/> 
     <param name="FlashVars" value="mediaPath=vincent.mp3" /> 
    </object> 
    <a href="vincent.mp3">Download this lovely song and wish you all the best!</a> 
</audio> 

をあなたのHTMLがhtml5のdoctypeを欠いており、検証エラーが含まれているという事実からあなたが直面する問題は非常にうまくいく可能性があります。 W3Cの仕様を確認することができます。私はあなたの属性のすべてがそれらの周りの引用符を持っている必要があります。

多くのブラウザでは、HTMLで構文と意味的な誤りを作り、それをウィングするだけでよい場合がありますが、時にはこれらの検証の問題が戻ってくることがあります。 W3C validatorに対してサイトを実行して、IE8がマークアップを正しく解釈できないHTMLエラーがないことを確認することを強くお勧めします。

+0

この包括的な答えをありがとう。スクリプトを書き換えるには、少なくとも2時間は必要です。私たちのプレーヤーはデバッグモードもサポートしています。それをオンにした後、No HTML5 Audioのサポートが検出されなかったと訴えました。私はどこでもhtml5(