【发布时间】:2019-04-04 02:17:15
【问题描述】:
所以我正在尝试创建一个网络应用程序,当您插入搜索时,它会使用 JSON 从 youtube API 获取数据,并呈现一个包含与您的搜索匹配的视频的列表。当它检索时,它会得到一些字母和数字答案,但不是视频列表。任何正确方向的帮助将不胜感激。这是它的 HTML:
<div class="search-box-container">
<form action="#" class="js-search-form search-box">
<label for="query"></label>
<input type="text" class="js-query search-form" placeholder="Search me">
<button type="submit" class="button">Search</button>
</form>
</div>
<h2>Results</h2>
<div class="js-search-results">
</div>
这就是它的 JS/Jquery:
const YOUTUBE_SEARCH_URL =
'https://www.googleapis.com/youtube/v3/search';
`const key = 'key'//(hidden for privacy concerns);`
function getDataFromApi(searchTerm, callback) {
const query = {
part: 'snippet',
key: key,
q: `${searchTerm} in:name`,
}
$.getJSON(YOUTUBE_SEARCH_URL, query, callback);
}
function renderResult(result) {
return `
<div>
<h2>
<a class="js-result-name" href="http//www.youtube.com/watch?v=${
result.id.videoId}" target="_blank">${result.id.videoId}</a></h2>
</div>
`;
}
function displayYoutubeSearchData(data) {
console.log(data);
const results = data.items.map((item, index) => renderResult(item));
$('.js-search-results').html(results);
}
function watchSubmit() {
$('.js-search-form').submit(event => {
event.preventDefault();
const queryTarget = $(event.currentTarget).find('.js-query');
const query = queryTarget.val();
queryTarget.val("");
getDataFromApi(query,displayYoutubeSearchData );
});
}
$(watchSubmit);
【问题讨论】:
-
你能发布一个你得到的答案的例子吗?
-
嗨大卫,我发布了我在搜索时得到的答案
-
@Gianina 我猜你已经在点击它时获得了链接,它会重定向到 youtube,不是吗?
-
@VineyHill 不确定我得到了什么,因为单击它会重定向到“未找到”
-
你得到的是 video id 例如。 RnBT9uUYb1w ---> youtube.com/watch?v=RnBT9uUYb1w 这是一个有效的视频。所以你只需要使用它们来组成链接。如果你想嵌入它们然后前往youtubevideoembed.com自定义方式然后你想在你的代码中使用 html。
标签: javascript json ajax forms youtube-api