suzuri random autopagerize Fork

  • /*
     * @title suzuri random autopagerize
     * @description suzuri random autopagerize
     * @include https://suzuri.jp/*
     * @license MIT
     * @javascript_url
     */
    
    
    (function() {
      var loading = false;
      var x = new XMLHttpRequest();
      var lastElement = function() {
        var e = document.querySelectorAll('.content.product');
        return e[e.length - 1];
      }();
      var insertPoint = lastElement.nextSibling;
    
      x.onload = function(e) {
        if (x.status <= 200) {
          var doc = e.target.response;
          Array.prototype.forEach.call(doc.querySelectorAll('.content.product'), function(elem) {
            if (image = elem.querySelector('#product-image .zoom > img.product-main-image')) {
              image.src = image.dataset.original
              lastElement.parentElement.insertBefore(elem, insertPoint);
            }
          });
        }
        loading = false;
      };
    
      function loadNext() {
        loading = true;
        x.open('GET', '/products/random', 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. 2015/02/03 01:20:44 - 2015-02-03
  2. 2015/02/02 10:36:49 - 2015-02-02