wikipedia random autopagerize

    @@ -6,40 +6,46 @@ * @javascript_url */ -(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; +(function () { + let loading = false; + const x = new XMLHttpRequest(); - 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; - }; + x.onload = function (e) { + history.pushState("", "", x.responseURL); + if (x.status <= 200) { + const doc = e.target.response; - 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.scrollTo(0, 0); + document + .querySelector("div.mw-page-container") + .replaceWith(doc.querySelector("div.mw-page-container")); + } + loading = false; + }; - window.addEventListener('scroll', function() { - if (loading) return; - var remain = document.documentElement.scrollHeight - window.innerHeight - window.pageYOffset; - if (remain < 2000) { - loadNext(); - } - }, 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); + } - loadNext(); -}()); + window.addEventListener( + "scroll", + function () { + if (loading) return; + const remain = + document.documentElement.scrollHeight - + window.innerHeight - + window.pageYOffset; + if (remain < 10) { + loadNext(); + } + }, + false + ); +})();
  • /*
     * @title wikipedia random autopagerize
     * @description wikipedia random auopagerize
     * @include http://ja.wikipedia.org/wiki/*
     * @license MIT
     * @javascript_url
     */
    
    (function () {
      let loading = false;
      const x = new XMLHttpRequest();
    
      x.onload = function (e) {
        history.pushState("", "", x.responseURL);
        if (x.status <= 200) {
          const doc = e.target.response;
    
          window.scrollTo(0, 0);
          document
            .querySelector("div.mw-page-container")
            .replaceWith(doc.querySelector("div.mw-page-container"));
        }
        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;
          const remain =
            document.documentElement.scrollHeight -
            window.innerHeight -
            window.pageYOffset;
          if (remain < 10) {
            loadNext();
          }
        },
        false
      );
    })();
    
  • 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