YouTube iframe API 未捕获类型错误
Posted
技术标签:
【中文标题】YouTube iframe API 未捕获类型错误【英文标题】:YouTube iframe API Uncaught TypeError 【发布时间】:2018-03-17 17:15:10 【问题描述】:我遇到了一个令人困惑的问题。一切正常,突然间我开始收到此错误:
Uncaught TypeError: playervid.isMuted is not a function
如果有人能提供帮助,将不胜感激。
这里是代码
// 2. This code loads the IFrame Player API code asynchronously.
var tag = document.createElement('script');
tag.src = "https://www.youtube.com/iframe_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
jQuery.noConflict()(function($)
// 3. This function creates an <iframe> (and YouTube player)
// after the API code downloads.
var playervid;
function onYouTubeIframeAPIReady()
playervid = new YT.Player('playervid',
height: "720",
width: "1280",
videoId: 'JNsFY9Hr-OU',
playerVars: 'autoplay': 1, 'showinfo': 0, 'controls': 0, 'autohide': 1, 'rel': 0, 'wmode': 'transparent',
events:
'onReady': initialize,
'onStateChange': onPlayerStateChange
);
function initialize(event)
event.target.mute();
$('body').on('click', '#mute-toggle', function(event)
var mute_toggle = $(this);
if(playervid.isMuted())
playervid.unMute();
mute_toggle.html('<i class="fa fa-volume-up fa-2x" aria-hidden="true"></i>');
$('.video-container iframe').removeClass('blur');
else
playervid.mute();
mute_toggle.html('<i class="fa fa-volume-up fa-2x muted" aria-hidden="true"></i>');
$('.video-container iframe').addClass('blur');
当用户单击#mute-toggle
按钮时,我收到错误消息。
【问题讨论】:
您能否尝试在 sn-p 中重现该问题,或者使用 jsfiddle.net 您不必包含所有源代码,只需包含相关部分即可给出您当前正在处理的问题的工作示例。谢谢。 我给开发网站的网址怎么样 我更希望有一个工作示例,因为我不太喜欢打开未知域,但我认为在这种情况下,它会节省时间,当然... :) 我会检查一下并看看能不能找到问题和解决办法。 【参考方案1】:修复它。原来我使用的主题“Divi”运行了一个更新,当您为菜单栏选择透明背景时,该更新现在运行一些 javascript,这会影响 API。我将 API 调用封装在一个 setTimeout 函数中,它又开始工作了。
【讨论】:
以上是关于YouTube iframe API 未捕获类型错误的主要内容,如果未能解决你的问题,请参考以下文章
Youtube iframe api 未触发 onYouTubeIframeAPIReady
YouTube iframe API - onReady 和 onStateChanged 事件未触发
Youtube iFrame API pauseVideo 在 UIWebView 中未定义
防止iframe滚动捕获youtube iframe嵌入chrome