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

Youtube API未捕获(在承诺中)错误:请求失败,状态码为403

YouTube API 音量控制