wikipedia random autopagerize

    @@ -15,6 +15,7 @@ var insertPoint = lastElement.nextSibling; x.onload = function(e) { + history.pushState('','',x.responseURL); if (x.status <= 200) { var doc = e.target.response; Array.prototype.forEach.call(doc.querySelectorAll('div.mw-body'), function(elem) {
  • /*
     * @title wikipedia random autopagerize
     * @description wikipedia random auopagerize
     * @include http://ja.wikipedia.org/wiki/*
     * @license MIT
     */
    
    (function() {
        var loading = false;
        var x = new XMLHttpRequest();
        var lastElement = function() {
            var e = document.querySelectorAll('div.mw-body');
            return e[e.length - 1];
        }();
        var insertPoint = lastElement.nextSibling;
    
        x.onload = function(e) {
            history.pushState('','',x.responseURL);
            if (x.status <= 200) {
                var doc = e.target.response;
                Array.prototype.forEach.call(doc.querySelectorAll('div.mw-body'), function(elem) {
                    lastElement.parentElement.insertBefore(elem, insertPoint);
                });
            }
            loading = false;
        };
    
        function loadNext() {
            loading = true;
            x.open('GET', '/wiki/%E7%89%B9%E5%88%A5:%E3%81%8A%E3%81%BE%E3%81%8B%E3%81%9B%E8%A1%A8%E7%A4%BA', true);
            x.responseType = 'document';
            x.send(null);
        };
    
        window.addEventListener('scroll', function() {
            if (loading) return;
            var remain = document.documentElement.scrollHeight - window.innerHeight - window.pageYOffset;
            if (remain < 2000) {
                loadNext();
            }
        }, false);
    
        loadNext();
    }());
  • Permalink
    このページへの個別リンクです。
    RAW
    書かれたコードへの直接のリンクです。
    Packed
    文字列が圧縮された書かれたコードへのリンクです。
    Userscript
    Greasemonkey 等で利用する場合の .user.js へのリンクです。
    Loader
    @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
    Metadata
    コード中にコメントで @xxx と書かれたメタデータの JSON です。

History

  1. 2023/02/13 15:50:29 - 2023-02-13
  2. 2017/09/28 15:24:04 - 2017-09-28
  3. 2015/05/21 14:23:24 - 2015-05-21
  4. 2015/05/21 14:15:53 - 2015-05-21
  5. 2015/05/21 14:09:09 - 2015-05-21