鋼霊的備忘録。

チラシの裏のメモ書き程度のなにか。

【JS】うまくいかない。

完全に自分宛て。

 

www.hassy-blog.com

 

 

 様よりランダム記事表示のコードを拝借しました。

DUDEテンプレートのおすすめ記事の部分にランダムに記事を表示させようと思ったのですが上手く行かなくて迷走中。

 

<script type="text/javascript">

var parser = new DOMParser();

async function getHtmlFromUrl(url) {
var page = await fetch(url).then(r=>r.text());
return parser.parseFromString(page, 'text/html');
}

function getEntryLinks(html) {
var links = Array.from(html.querySelectorAll('.entry-title-link'));
return links ? links.map(e=>e.href) : ;
}

function getNextLink(html) {
var next = html.querySelector('.pager-next a');
return next ? next.href : '';
}

async function getAllEnrtyLinks(url, entries) {
entries = entries || ;

var html = await getHtmlFromUrl(url),
links = getEntryLinks(html),
next = getNextLink(html);

entries = entries.concat(links);

if (next) {
return await getAllEnrtyLinks(next, entries);
} else {
return entries;
}
}

var entries;
getAllEnrtyLinks('http://iruk.hatenablog.com/').then(function(result){
entries = result;
var button = document.querySelector('.random_btn');
button.disabled = false;
button.innerHTML = ' '
})

<script type="text/javascript">

 

<button class="random_btn" onclick="location.href=entries[Math.floor(Math.random() * entries.length)]" disabled>読み込み中...</button>

 

  (URL張替えた以外上記サイト様から引っ張ったものです、ボタンの件に関しては分かり易い解説もあるので是非ご参照下さい。

 

このボタン形式は上手く行くのだけれど、

 

 

<h6 class="display1">

  <button class="random_btn" onclick="location.href=entries[Math.floor(Math.random() * entries.length)]" disabled>読み込み中...

  </button>

</h6>

 

DUDEのヘッダ記事に貼ろうと挑んだこっちは上手く行かない。

 

多分とんでもない馬鹿をやらかしてる気がする。

解決したら追記します。

 

 

 

解決してないけど

追記:リンクが上手く貼れてなかったので修正しました。申し訳ありません...><