javascript - 未捕获的类型错误 : Cannot call method 'toLowerCase' of undefined (Youtube API)

标签 javascript html youtube-api undefined

我在搜索问题时发现了这个问题: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,并且该值不会影响结果(在本例中)。 link 是 Youtube 视频标识符,它有 11 个字符长,看起来像这样:TMTpeDM7GN0。

我可能会补充一点,我可以调用此函数一次而不会收到任何错误,但我第二次调用它时会收到错误(见标题)。此外,Firefox 告诉我问题出在“http://s.ytimg.com/yts/jsbin/www-widgetapi-vflZPZFPk.js”中第 18 行的“TypeError: c.tagName is undefined”。

这变得相当长,但我尽量做到尽可能详尽。

非常感谢所有帮助!

最佳答案

我遇到了一个非常相似的错误。我的问题似乎是我传递的是 JQuery 元素而不是原始元素,而且它没有 tagName。您的问题给了我所需的线索,非常感谢!或许您可以尝试自己获取元素而不是传递 id,并确保您获取的对象具有 tagName 成员。

关于javascript - 未捕获的类型错误 : Cannot call method 'toLowerCase' of undefined (Youtube API),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17255902/

相关文章:

jquery - 停止iframe YouTube视频

javascript - 如何使用 javascript 将 html 文件加载到 div 选项卡中

javascript - Javascript 警报中文本的颜色

PHP - 将多张照片上传到新创建的目录中

php - YouTube get_video_info API相当慢

google-api - Youtube API v3 获取评论

javascript - 将动画添加到下拉按钮上的购物车箭头的问题

Javascript Fade 产生意想不到的结果

jquery - 背景图片未在 chrome 中加载

javascript - 将表数据 'contenteditable' 属性限制为仅 Integer