2012-04-05 23 views
0

私はswfobjectを使用してYoutubeビデオのローダーで作業しました。 プラグインが使用されています:jQuery 1.6.4 + SWFobject 2.2IE8のバグ:スクリプトのinnerhtmlのロード

すべてはIE8で素晴らしい実行ファイルです! script.innerHTMLでそのクラッシュ...

<div id"youtube"><div id="player"></div></div>​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​ 

SCRIPT

function loadYoutube(videoID) 
{ 
var script = document.createElement("script"); 
script.type = "text/javascript"; 
document.getElementById("youtube").appendChild(script); 
script.innerHTML = 'var params = { allowScriptAccess: "always", wmode: "transparent", allowfullscreen:"true" }; var atts = { id: "player" }; swfobject.embedSWF("http://www.youtube.com/v/'+videoID+'?enablejsapi=1&playerapiid=ytplayer&version=3", "player", "870", "550", "8", "flash/expressInstall.swf", null, params, atts);'; 
} 
loadYoutube('BoEKWtgJQAU')​​​;​ 

任意のアイデア? ありがとう

答えて

1

IE8(と私は信じてIE7)innerHTMLに問題があり、この方法で試してみるとクラッシュします。同様の問題があり、.innerHTMLの代わりに.textを使用して解決しました。

これはIE8/IE7の問題であるため、IE8/IE7をテストして.innerHTMLではなく.textを使用するロジックを実装する必要があります。どのように異なるブラウザのバージョンをテストする方法を示しますそこに多くの例がありますが、あなたはjQueryのを使用していない場合

if ($.browser.msie && parseInt($.browser.version, 10) === 8) { 
    script.text = 'var params = { allowScriptAccess: "always", wmode: "transparent", allowfullscreen:"true" }; var atts = { id: "player" }; swfobject.embedSWF("http://www.youtube.com/v/'+videoID+'?enablejsapi=1&playerapiid=ytplayer&version=3", "player", "870", "550", "8", "flash/expressInstall.swf", null, params, atts);'; 
} else { 
    script.innerHTML = 'var params = { allowScriptAccess: "always", wmode: "transparent", allowfullscreen:"true" }; var atts = { id: "player" }; swfobject.embedSWF("http://www.youtube.com/v/'+videoID+'?enablejsapi=1&playerapiid=ytplayer&version=3", "player", "870", "550", "8", "flash/expressInstall.swf", null, params, atts);'; 
} 

:私はこのようにIE8をテストすることができたのjQueryを使用していました。

関連する問題