indicator reviver Fork

    @@ -9,27 +9,25 @@ // inspired // http://let.hatelabo.jp/pacochi/let/hJmc3OPAv48G + // TODO + // user.js on Gist + // c.f. // http://h.hatena.ne.jp/noromanba/227136362604995923 (() => { + 'use strict'; + const indicator = document.body.querySelector([ 'img[src]#auto_save_icon' ]); if (!indicator) return; // TBD data URI - const throbber = { - original: 'https://web.archive.org/web/20100511175314if_/http://r.hatena.ne.jp/images/indicator.gif', - circlesmall: 'https://s.hatena.ne.jp/images/load.gif', - // same as original - circlelarge: 'https://d.hatena.ne.jp/images/indicator.gif', - // thx id:a-kuma3 - // http://h.hatena.ne.jp/a-kuma3/83461036272149214 - squaredots: 'https://cdn-ak.b.st-hatena.com/images/loading.gif', - }; + // thx id:a-kuma3 + // http://h.hatena.ne.jp/a-kuma3/83461036272149214 + indicator.src = 'https://cdn-ak.b.st-hatena.com/images/loading.gif'; + // [1] - indicator.src = throbber.squaredots; - // TBD // - CSSnize // - align by flexbox
    @@ -41,15 +39,24 @@ ]); if (!checkbox) return; - // XXX see Rendering Engine - // TODO omit IIFE - checkbox.style.verticalAlign = (() => { - if (navigator.userAgent.includes('Chrome')) { - return 'middle'; - } - if (navigator.userAgent.includes('Firefox')) { - return 'text-top'; - } - })(); + checkbox.style.verticalAlign = + // XXX see the Rendering Engine + navigator.userAgent.includes('Chrome') ? 'middle' : + navigator.userAgent.includes('Firefox') ? 'text-top' : + ''; })(); + + + // DEV + // + // [:1] throbber/spinner icons + // + // original + // https://web.archive.org/web/20100511175314if_/http://r.hatena.ne.jp/images/indicator.gif + // circle large; same as original + // https://d.hatena.ne.jp/images/indicator.gif + // circle small + // https://s.hatena.ne.jp/images/load.gif + // square dots + // https://cdn-ak.b.st-hatena.com/images/loading.gif
  • /*
     * @title indicator revived
     * @description revive "[saving...]" indicator on Hatena::Let
     * @include *://let.hatelabo.jp/l
     * @license MIT License https://opensource.org/licenses/MIT
     * @javascript_url
     */
    
    // inspired
    // http://let.hatelabo.jp/pacochi/let/hJmc3OPAv48G
    
    // TODO
    // user.js on Gist
    
    // c.f.
    // http://h.hatena.ne.jp/noromanba/227136362604995923
    (() => {
        'use strict';
    
        const indicator = document.body.querySelector([
            'img[src]#auto_save_icon'
        ]);
        if (!indicator) return;
    
        // TBD data URI
        // thx id:a-kuma3
        // http://h.hatena.ne.jp/a-kuma3/83461036272149214
        indicator.src = 'https://cdn-ak.b.st-hatena.com/images/loading.gif';
        // [1]
    
        // TBD
        // - CSSnize
        // - align by flexbox
        // original style fixes
        indicator.style.verticalAlign = 'text-top';
    
        const checkbox = document.body.querySelector([
            'input[type="checkbox"]#autosave'
        ]);
        if (!checkbox) return;
    
        checkbox.style.verticalAlign =
            // XXX see the Rendering Engine
            navigator.userAgent.includes('Chrome') ? 'middle' :
            navigator.userAgent.includes('Firefox') ? 'text-top' :
            '';
    })();
    
    
    // DEV
    //
    // [:1] throbber/spinner icons
    //
    // original
    // https://web.archive.org/web/20100511175314if_/http://r.hatena.ne.jp/images/indicator.gif
    // circle large; same as original
    // https://d.hatena.ne.jp/images/indicator.gif
    // circle small
    // https://s.hatena.ne.jp/images/load.gif
    // square dots
    // https://cdn-ak.b.st-hatena.com/images/loading.gif
    
    
  • Permalink
    このページへの個別リンクです。
    RAW
    書かれたコードへの直接のリンクです。
    Packed
    文字列が圧縮された書かれたコードへのリンクです。
    Userscript
    Greasemonkey 等で利用する場合の .user.js へのリンクです。
    Loader
    @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
    Metadata
    コード中にコメントで @xxx と書かれたメタデータの JSON です。