はてなブログのTOPやアーカイブで表示される謎の自分のurlを消してみた

スポンサードリンク

はてなブログで過去記事を貼ったとき、下記画像のようにTOPやアーカイブページでは過去記事の内容は消えて自分のurlだけ表示されるのが謎でした。

f:id:funclur:20160924190027p:plain

これって自分だけなのかと思って別の方のはてなブログアーカイブページを見ましたが同じようになっていたので、はてなブログ界ではしょうがないこととされている?のだろうと勝手に察しました。

記事一覧で過去記事が表示されないのは、いいのですがなぜfunclur.hatenablog.comという文字列だけ残る仕様なのかよくわかりませんでしたが、ソースを見てみると過去記事の部分はiframeを読み込んでいるようです。

f:id:funclur:20160924190049p:plain

恐らくですが記事一覧では、.entry-content内の文字列だけを読み込んで表示しているためリンクにもならずに上記画像のような表示になるのかと思います。

今まで容認していましたが、やはり間抜けな感じがしたので根本的な解決ではないですがjsで削除することにしました。

f:id:funclur:20160924185340p:plain

わからない方のためにコメントしております。

$(function(){ //htmlを読み込んでから実行
  if( location.href === 'http://funclur.hatenablog.com/archive'){ //記事一覧ページの判定
    var url = 'funclur.hatenablog.com'; //消したい文字列
    var $description = $('.entry-description'); //記事一覧の文章を包括しているクラス
    $description.each(function(){ //.entry-descriptionそれぞれに実行
      var txt = $(this).html(); //.entry-descriptionの中身
      $(this).html(txt.replace(url, '' )); //.entry-descriptionの中身の指定した文字列を空にしなさいという命令
    });
  });
}

本当は、nativeなjavascriptで書いた方が実行スピード速いのですが、jqueryに頼っています。

同じように謎だなと感じている方は、やってみてください。

  • クラス名は、テーマによって違う可能性があるので開発ツールで確認してみてください。
  • というかはてなブログ側でこの仕様やめてほしい笑

funclur.hatenablog.com