Сбор заголовка с YouTube с помощью API дает странное поведение в Jekyll - PullRequest
0 голосов
/ 09 февраля 2019

Я использовал следующий код для получения заголовка YouTube в своем блоге на jekyll.

<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

1 Ответ

0 голосов
/ 09 февраля 2019

Ваша ошибка в том, что вы просто пишете на страницу.Вам нужно переписать конкретный узел HTML, где бы вы ни хотели отобразить заголовок.

Например, если вы хотите изменить текст заголовка с идентификатором 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>
...