Tôi đang thêm video youtube vào trang web của công ty và muốn chúng hiển thị trên thiết bị không flash. Tôi đã chơi với API iframe của youtube và đã cập nhật một trong các ví dụ của họ để cho phép người dùng nhấp vào liên kết để thay đổi video trong iframe. Mã sửa là:youtube iframe api loadVideoById() lỗi
<!DOCTYPE HTML>
<html>
<body>
<div id="player"></div>
<script>
var tag = document.createElement('script');
tag.src = "http://www.youtube.com/player_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
var done = false;
var player;
function onYouTubePlayerAPIReady() {
player = new YT.Player('player', {
height: '390',
width: '640',
videoId: 'JW5meKfy3fY',
events: {
'onReady': onPlayerReady,
'onStateChange': onPlayerStateChange
}
});
}
function onPlayerReady(evt) {
evt.target.playVideo();
}
function onPlayerStateChange(evt) {
if (evt.data == YT.PlayerState.PLAYING && !done) {
setTimeout(stopVideo, 6000);
done = true;
}
}
function stopVideo() {
player.stopVideo();
}
function loadVideo(videoID) {
if(player) { player.loadVideoById(videoID); }
}
</script>
<a href="javascript:loadVideo('kGIjetX6TBk');">Click me to change video</a>
</body>
</html>
Điều duy nhất tôi nói thêm là:
function loadVideo(videoID) {
if(player) { player.loadVideoById(videoID); }
}
này hoạt động tốt trong Safari, Chrome và Firefox nhưng không hoạt động trong IE7, 8 hoặc 9. Trong IE7 và 8 nó trả về lỗi "Đối tượng không hỗ trợ thuộc tính hoặc phương thức này".
Đây có phải là vấn đề với API hoặc tôi đang làm điều gì sai?
Giải quyết. '... sự kiện: {'onReady': function() {...}' – Xeoncross