サイトのトップページ(HTML)に、サイト内にある掲示板の記事一覧ページ(HTML)へのリンクがあります。

掲示板に3日以内の投稿記事があるときは、このリンクに赤字で「New」と付けたいのですが、javascriptでどのようにすればよいか教えてください。

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2012/01/14 23:32:05
  • 終了:2012/01/17 16:42:38

ベストアンサー

id:Cherenkov No.1

Cherenkov回答回数1503ベストアンサー獲得回数4932012/01/16 01:35:35

これをトップページの<head>に追加してみてください。

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" charset="UTF-8"></script>
<script type="text/javascript">
$(function() {
$.ajax({
  url: 'sboard.cgi?c:indexp',
  success: function(data, textStatus, jqXHR){
    var postTime = new Date($(data).find('small i').eq(0).text()).getTime();
    var serverTime = new Date(jqXHR.getResponseHeader('Date')).getTime();
    if ((serverTime - postTime) < (1000*60*60*24*3)) {
      $('a[href*="sboard.cgi"]').after('<span style="position:absolute;right:-50px;color:red;">new!</span>').parent().css('position', 'relative');
    }
  }
});
});
</script>

掲示板の一番上にある記事の時刻とサーバーの時刻を取得して3日以内か判定しています。
返信された時刻ではありません。一番上の記事が投稿された時刻で判定します。
3日以上経った記事に返信された場合もNewしたい場合は相談してください。
(返信記事はツリー表示ではなく一番上にくるからこれでいいかな?)

Newはこちらで適当に配置したので指定してもらえればお好みの位置に変えます。

id:Cherenkov

1000*60*60*24*3の部分が3日分のミリ秒になっていて、最後を*1にすれば1日以内の記事が一番上にある場合にNewをつけます。

2012/01/16 01:46:06
id:OneLook

Cherenkovさん、ありがとうございます。
できました。

2012/01/17 16:42:19
  • id:Cherenkov
    サイトのURLか、複数の記事が並んだ状態のHTMLを提示してください。
    このあたりのサービスを使えばコードを無料で貼り付けられます。
    http://jsfiddle.net/
    https://gist.github.com/
  • id:OneLook
    Cherenkovさん、ありがとうございます。
    http://pecopoco.com/ です。
    お見せするのは恥ずかしいようなページですがよろしくお願いします。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません