問題を検索したときに、特にこれを見つけました: 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 の動画 ID で、長さは 11 文字で、TMTpeDM7GN0 のようになります。
この関数を 1 回呼び出すとエラーは発生しませんが、2 回目に呼び出すとエラーが発生します (タイトルを参照)。また、Firefox によると、「 http://s.ytimg.com/yts/jsbin/www-widgetapi-vflZPZFPk.jsTypeError: c.tagName is undefined
」の 18 行目の「 」に問題があるとのことです。
かなり長くなってしまいましたが、出来るだけ詳しくまとめてみました。
すべてのヘルプは大歓迎です!