【发布时间】:2019-03-22 01:37:40
【问题描述】:
我正在尝试通过 AJAX 显示来自我的播放列表之一的 YT 视频,但我无法用我获取的数据真正替换来自 iframe 的 videoID。
我这样获取数据:
const apiKey = 'MY_API_KEY'
const playlistId = "MY_PLAYLIST_ID"
const url = `https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&maxResults=25&playlistId=${playlistId}&key=${apiKey}`
const getData = function () {
return fetch(url)
.then(response => response.json())
.then(data => {
return data.items.map(playlist => {
return {
videoId: playlist.snippet.resourceId.videoId
}
})
})
}
现在我想测试是否可以将其中一个 videoId 放到我的 iframe 上,因此我尝试将其放入我的部分中,如下所示:
const playerTag = document.querySelector(".player")
const putVideoOn = function () {
playerTag.innerHTML = ""
playerTag.innerHTML = playerTag.innerHTML + `
<div class="player-video">
<iframe width="480" height="360" src="https://www.youtube.com/embed/${data.videoId}" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>
</div>
`
}
// then I ran the function on load
putVideoOn()
但我总是收到一条错误消息,提示我注入iframe 链接的变量未定义。
【问题讨论】:
-
发布错误也非常有帮助。我确实注意到 const url 使用反引号而不是引号:
url = `https:..而不是url = 'https:.. -
我不知道,YouTube 是否会允许您的计划。
-
这是错误:
Uncaught ReferenceError: data is not defined,然后当我使用${playlist.videoId}时,我得到了Uncaught ReferenceError: playlist is not defined。当我尝试${videoId}时,我得到了这个:Uncaught ReferenceError: videoId is not defined。url有反引号,因为我在其中注入了两个consts。当我运行 console.log 时,它会获取我想要的所有数据......
标签: javascript ajax youtube youtube-api youtube-data-api