我正在使用Google Maps API v3,并在infopanel中添加了一些嵌入式YouTube视频。它显示并正常工作。当我关闭面板时会发生奇怪的事情。
在IE8中,随着flash播放器全屏显示,整个屏幕变黑。没有看到视频,但是如果我点击则播放音频。
在FF23中,控制台中显示错误 - TypeError:值不是对象。 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中屏幕仍然闪烁一秒黑色。
google.maps.event.addListener(infowindow,'closeclick',function(){
document.getElementById('theframe').src = "dummyfile.html";
});
答案 0 :(得分:0)
尝试在关闭面板之前销毁player-Object。 - &GT; player.destroy()