我在搜索问题时发现了这个问题:Uncaught TypeError: Cannot call method 'toLowerCase' of undefined 我查了一下,但它在我的案例中似乎并不相关(我可能是错的!)。Uncaught TypeError:无法调用未定义的方法'toLowerCase'(Youtube API)
无论如何,我正在使用Youtube Iframe API,在我的HTML文件中包含“http://www.youtube.com/player_api”。 当我的页面准备就绪时,我添加了7个iframe到我的DOM,他们得到了他们自己的id(例如id =“0”),我用for-loop改变了,对于每个iframe我调用一个方法来应用Youtube API功能在视频上:
function addPlayerAPIToVideo(vidId, link, plId) {
if (players[plId] === undefined) {
players[plId] = new Array();
}
playlistPlayers[plId][vidId] = new YT.Player(vidId, { //Error comes from the YT.Player function
videoId: link,
events: {
'onStateChange': onPlayerStateChange
}
});
}
vidId是调用此方法之前创建的iframe上的id。 在此错误期间,plId为== 0,并且该值不会影响结果(在这种情况下)。 链接是Youtube视频标识符,它的长度为11个字符,可以像这样:TMTpeDM7GN0。
我可能会补充说我可以一次调用这个函数而不会收到任何错误,但是第二次我调用它时,我得到错误(请参阅标题)。另外,Firefox告诉我在“http://s.ytimg.com/yts/jsbin/www-widgetapi-vflZPZFPk.js”的第18行,问题是“TypeError: c.tagName is undefined
”。
这变得相当长,但我试图尽可能彻底。
所有帮助非常感谢!
谢谢,一年半后我再次遇到同样的问题,你的回答帮助我解决了它! – Daniel