auto slides Fork

  • /*
     * @title auto slides
     * @description slide paging with AutoPagerize/AutoPatchwork
     * @include http://*
     * @contributor vzvu3k6k    http://let.hatelabo.jp/vzvu3k6k/let/hLHX5ZrPpLVS
     * @author      noromanba   http://let.hatelabo.jp/noromanba/let/gYC-x-XT8IHVbA
     * @license Public Domain   https://creativecommons.org/licenses/publicdomain/
     */
    
    (function () {
        var slide = function () {
            var seps  = document.querySelectorAll('.autopagerize_page_separator');
            if (seps.length < 1) return;
    
            // XXX depends style settings by user
            var end = seps[seps.length - 1];
            var start = end.parentElement.className.match(/autopagerize_page_separator_blocks/) ?
                end.parentNode.parentNode.firstElementChild :   // AutoPatchWork
                end.parentNode.firstElementChild;               // AutoPagerize
    
            var range = document.createRange();
            range.setStart(start, 0);
            range.setEnd(end, 0);
            range.deleteContents();
        };
        slide();
    
    // XXX throttling load problem. XHR storm like DoS; check height, times or lazy paging
    /*
        // TODO MutationObserver/debouncing Mutation call
        document.body.addEventListener('AutoPatchWork.DOMNodeInserted', function (_) {
            slide();
        }, false);
        document.body.addEventListener('AutoPagerize_DOMNodeInserted', function (_) {
            slide();
        }, false);
    //*/
    })();
    
    // # Separator structure
    // - Chrome(mium) Extention
    // - default settings
    //
    // ## AutoPagerize
    // ### HTML
    //
    //     <hr class="autopagerize_page_separator">
    //     <p class="autopagerize_page_info">page: <a class="autopagerize_link" href="http://example.com?page=2">2</a>
    //     </p>
    //
    // ## AutoPatchwork
    // ### Styles
    //
    //     .autopagerize_page_separator_blocks .autopagerize_link{
    //       display:inline-block;
    //     }
    //     .autopagerize_page_separator_blocks .autopagerize_link:before{
    //       content:"page: " attr(number);
    //     }
    //
    // > chrome-extension://aeolcjbaammbkgaiagooljfdepnjmkfd/options.html#styles
    //
    // ### HTML
    //     <div class="autopagerize_page_separator_blocks">
    //       <hr class="autopagerize_page_separator">
    //       <p class="autopagerize_page_info">
    //         <a class="autopagerize_link" href="http://example.com/?page=2" number="2" title="example"></a>
    //       </p>
    //     </div>
    
  • Permalink
    このページへの個別リンクです。
    RAW
    書かれたコードへの直接のリンクです。
    Packed
    文字列が圧縮された書かれたコードへのリンクです。
    Userscript
    Greasemonkey 等で利用する場合の .user.js へのリンクです。
    Loader
    @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
    Metadata
    コード中にコメントで @xxx と書かれたメタデータの JSON です。

History

  1. 2013/06/10 11:06:07 - 2013-06-10
  2. 2013/06/10 11:03:30 - 2013-06-10
  3. 2013/06/10 08:50:10 - 2013-06-10
  4. 2013/06/10 08:40:05 - 2013-06-10