当我搜索问题时,我发现了这个:Uncaught TypeError: Cannot call method 'toLowerCase' of undefined 我查看了它,但它似乎与我的情况无关(我可能错了!)。
无论如何,我通过在我的 HTML 文件中包含“ http://www.youtube.com/player_api ”来使用 Youtube Iframe API。当我的页面准备好后,我将 7 个 iframe 添加到我的 DOM,它们获得了自己的 id(例如 id="0"),我通过 for 循环对其进行了更改,并且对于每个 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.jsTypeError: c.tagName is undefined
”的第 18 行。
这变得相当长,但我试图尽可能彻底。
非常感谢所有帮助!