onReady事件不会在IE11 & Edge上触发,但它在IE10、火狐、Safari和Google Chrome上运行良好。当页面加载时,我使用javascript api将视频静音。这是我写的代码。(注:我正在使用Drupal)
(function ($) {
function onPlayerReady(event) {
event.target.mute();
}
function muteVideos(video_ids) {
for (var iframe_id in video_ids) {
var player = new YT.Player(iframe_id, {
videoId: iframe_id,
playerVars:
{
"enablejsapi":1,
"origin":document.domain,
"rel":0
},
events: {
"onReady": onPlayerReady
}
});
}
}
function loadPlayer(video_ids) {
if (typeof (YT) == 'undefined' || typeof (YT.Player) == 'undefined') {
var tag = document.createElement('script');
tag.src = "https://www.youtube.com/iframe_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
window.onYouTubePlayerAPIReady = function () {
muteVideos(video_ids);
};
} else {
muteVideos(video_ids);
}
}
Drupal.behaviors.eweev_media_youtube_video = {
attach: function (context, settings) {
// Array containing iframe ids of the youtube videos that should be
// muted provided using drupal_add_js
var video_ids = Drupal.settings.eweev_media_youtube_video;
loadPlayer(video_ids);
}
};
})(jQuery);
我想知道我是不是错过了什么。
发布于 2016-01-07 20:50:56
我做了一些研究,发现IFrame应用程序接口有一个暂时的问题。对于临时修复,您可以在下面查看相关的堆栈溢出:YouTube iframe player API - OnStateChange not firing和Youtube Iframe API not working in Internet Explorer (11)
https://stackoverflow.com/questions/34596571
复制相似问题