8

iframe 経由で埋め込まれた Youtube ビデオを含む div があります。

<div id="container">
    <div id="video">
        <iframe width="480" height="360" src="http://www.youtube.com/embed/LiyQ8bvLzIE" frameborder="0" allowfullscreen></iframe>
    </div>
</div>

ajax 呼び出しで #container の内容を変更します

$.get(url, function(data) {
    ('#container').html(data);
}

IE9 で次のエラーが表示されるようになりました:「SCRIPT5009: '_ flash _removeCallback' は未定義です」。

ajax呼び出しの前にビデオやiframeを削除、削除しようとしましたが、うまくいきません:

<script>
    $('#video').html('')
</script>

<script>
    $('#video').empty()
</script>

<script>
    $('#video').remove()
</script>

<script>
    $('#video iframe').attr('src', '')
    $('#video').empty()
</script>

<script>
    $('#video').hide()
    $('#video iframe').attr('src', '')
    $('#video').empty()
</script>

...

しかし、今はアイデアがありません...

4

4 に答える 4

2

最後に私は解決策を得ました。

どのサーバー サイド言語を使用しているかわかりませんが、私は PHP を使用しています。とにかく、ブラウザが IE9 であるかどうかを調べてから、オブジェクト タグを使用します。

if (preg_match('/MSIE 9.0/', $_SERVER['HTTP_USER_AGENT'])) { /*for IE 9.0 generate with objace tag*/ ?>
     <object type="application/x-shockwave-flash" data="VIDEO_URL">
      <param name="movie" value="VIDEO_URL" />
      </object>
 <?php } else { /*rest of all browsers,in iframe*/ ?>
      <iframe src="VIDEO_URL"></iframe>
 <?php } ?>

要するに、IE9 と残りのobjectタグを使用します。iframe

于 2012-10-23T10:26:42.843 に答える
1

iframe コードを引き続き使用する場合は、removeAttr を呼び出して (空白に設定する代わりに) iframe src を削除できます。

$('#video iframe').removeAttr('src')
于 2012-12-07T22:27:17.040 に答える
1

私は解決策を得ました。

ytplayer.getIframe().src='';
于 2012-11-23T20:27:16.253 に答える