0

私は Google Maps API v3 を使用しており、インフォパネルに YouTube ビデオが埋め込まれています。正常に表示され、動作します。パネルを閉じると奇妙なことが起こります。

  • IE8 では、Flash Player が全画面表示になると、画面全体が黒くなります。ビデオは表示されませんが、クリックするとオーディオが再生されます。

  • FF23 では、エラーがコンソールに表示されます - TypeError: Value not an object. http://s.ytimg.com/yts/jsbin/www-embed-player-vflTdsFMk.js (220 行目)

テストとして、Google の例 ( https://developers.google.com/maps/documentation/javascript/examples/infowindow-simple ) からコードを取得し、コンテンツを YouTube iframe 埋め込みコードに変更しました。同じことが起こります。

テストコードは以下に含まれています。

<!DOCTYPE html>
<html>
  <head>
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no">
    <meta charset="utf-8">
    <title>Info windows</title>
    <script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"></script>
    <script>
        function initialize() {
          var myLatlng = new google.maps.LatLng(-25.363882,131.044922);
          var mapOptions = {
            zoom: 4,
            center: myLatlng,
            mapTypeId: google.maps.MapTypeId.ROADMAP
          }

          var map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);

          var contentString = "<iframe width='250' height='167' src='http://www.youtube.com/embed/eLRlHcCiNjg' frameborder='0' ></iframe>";

          var infowindow = new google.maps.InfoWindow({
              content: contentString
          });

          var marker = new google.maps.Marker({
              position: myLatlng,
              map: map,
              title: 'Uluru (Ayers Rock)'
          });
          google.maps.event.addListener(marker, 'click', function() {
            infowindow.open(map,marker);
          });
        }

        google.maps.event.addDomListener(window, 'load', initialize);

    </script>
  </head>
  <body>
    <div style="width: 800px; height: 800px;" id="map-canvas"></div>
  </body>
</html>

主な問題はIE8です。私は明らかにそれをサポートしたくないのですが、残念ながら私にはそのオプションがありません。

どんな助けでも大歓迎です。

アップデート

パネルを閉じる直前に iframe の src を変更するとうまくいくようです。IE では、画面がまだ 1 秒間黒く点滅しますが。

google.maps.event.addListener(infowindow,'closeclick',function(){
  document.getElementById('theframe').src = "dummyfile.html";
});
4

1 に答える 1

0

パネルを閉じる前にプレーヤー オブジェクトを破棄してみてください。-> player.destroy()

于 2013-09-09T11:07:12.093 に答える