みかづきブログ その3

3ヶ月つづけてみました。

FacebookMarkletをつくろう。

先日、 こんなブログ 記事をみつけました。

ChromeFacebook開いてたら、時間で勝手に閉じるアドオンとか欲しい

3分で閉じる
1日5回までしか見れない。
それだけで十分です。誰か作ってください。

お願いします。

ChromeでFacebook開いてたら、時間で勝手に閉じるアドオンとか欲しい - おっさんディレクターブログ

というわけでつくってみました。

Facebook

上記リンクをお気に入りに登録してご利用ください。
※ ポップアップブロックに引っかかる場合は許可してあげてください。

解説

コードはこんなかんじです。

(function(){

    "use strict";

    var fb      = window.open('http://jsrun.it/kimmy/fbLimit'),
        count   = 0,
        today   = (new Date).getDay(),
        lastday = localStorage.getItem('lastday') - 0 || 0,
        LIMIT   = {
            count : 5,
            ms    : 180000
        };

    if (!lastday) {
        localStorage.setItem('lastday', today);
        count = 0;
    } if (!!(today - lastday)) { 
        localStorage.setItem('lastday', today);
        count = 0;
    } else {
        count = (fb.localStorage.getItem('count') || 0 ) - 0;
    }

    if (count > LIMIT.count - 1) {
        fb.close();
    } else {
        fb.location.href='https://www.facebook.com/';
        localStorage.setItem('count', ++count);
        setTimeout(function(){
            fb.close();
        }, LIMIT.ms);
    }

})();

3分で閉じる

window.openで開いたwindowを変数として持っておき、timerをつかって180000ms後に閉じるように設定しました。

1日5回までしか見れない。

ローカルストレージをつかって実装しました。
最後に開いた曜日と、その曜日に何度Facebookを開いたかをローカルストレージに保存しています。
なので、まるまる1週間ぶりにアクセスしようとすると同一の日と認識されて回数制限がリセットされません。
Facebookの観覧回数を制限したいと思うほどの人であれば、毎日アクセスするのできっと問題ないことでしょう。

6回目のアクセスからは、

f:id:kimizuka:20131217101144p:plain

と表示され、Facebookが開かなくなります。

アドオンがほしい

アドオンではなくブックマークレットにしました。
ローカルストレージがつかえる環境であればほとんどのブラウザで動作すると思います。


以上です。それでは快適なFacebookライフを。