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 です。