javascript - 使用 api 从 youtube 收集标题会在 jekyll 中产生奇怪的行为
问题描述
我使用以下代码在我的 jekyll 博客中获取 youtube 标题。
<script type="text/javascript">
function getyoutubetitle(videoID) {
$.getJSON('https://www.googleapis.com/youtube/v3/videos?id='+videoID+'&key=AIzaSyDfqskjJZVzNMKVs1c7dXvlDC2rpjrB60&part=snippet&callback=?',function(data){
if (typeof(data.items[0]) != "undefined") {
document.write(data.items[0].snippet.title);
} else {
console.log('video not exists');
}
});
}
</script>
使用时,<script>getyoutubetitle("iClTTtecJhs");</script>
我会重新加载页面以仅提供视频标题和博客的所有其他内容。
http://songs.justinechacko.in/malayalam/2018/02/01/file5.html
解决方案
您的错误是您只是在写入页面。您需要重写要显示标题的任何位置的特定 HTML 节点。
例如,如果您想使用 id 更改标题的文本videoTitle01
,那么您可以这样做:
<script type="text/javascript">
function getyoutubetitle(nodeID, videoID) {
let node = '#' + nodeID;
let apiKey = 'AIzaSyDfqskjJZVzNMKVs1c7dXvlDC2rpjrB60';
let url = 'https://www.googleapis.com/youtube/v3/videos?id=' + videoID + '&part=snippet&key=' + apiKey;
$.getJSON(url, function(data){
if (data && data.items && data.items[0]) {
$(node).text(data.items[0].snippet.title);
} else {
console.log('video not exists');
}
});
}
</script>
...
<script>
getyoutubetitle('videoTitle01','iClTTtecJhs');
</script>
<h1 id="videoTitle01"><h1>
推荐阅读
- javafx - 需要在 javafx 中使用 xml 数据自定义组合框
- python - 如何使用 pyTorch 为 LSTM 神经网络暗示装袋方法?
- android - Dagger2 没有找到提供的实例
- ionic-framework - 在全新安装 npm、角度 cli 和 ionic 时执行“离子服务”时出错 - 找不到模块 @angular\cli\bin\ng
- neutrinos-platform - 如何在 neutrinos-platform 中切换我的应用程序工作区?
- php - 如何验证用户登录的密码
- ionic3 - 运行 ionic serve 时出现 ionic 2 super tabs 错误
- c++ - 支持 Qml 的 C++ 继承
- python - sqlalchemt---SAWarning:完全 NULL 主键标识无法加载任何对象
- ssl - 如何在 istio 的入口网关处终止 ssl?