您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Greasy Fork is available in English.
HTML、XML、DOM、文字列に関する汎用的な処理をまとめたライブラリです。
当前为
此脚本不应直接安装。它是供其他脚本使用的外部库,要使用该库请加入元指令 // @require https://update.greasyfork.icu/scripts/19616/125280/%E3%83%A6%E3%83%BC%E3%83%86%E3%82%A3%E3%83%AA%E3%83%86%E3%82%A3%E3%82%AF%E3%83%A9%E3%82%B9.js
// ==UserScript== // @name ユーティリティクラス // @version 1.1.0 // @description HTML、XML、DOM、文字列に関する汎用的な処理をまとめたライブラリです。 // @license Mozilla Public License Version 2.0 (MPL 2.0); https://www.mozilla.org/MPL/2.0/ // @compatible Firefox // @compatible Opera // @compatible Chrome // @author 100の人 // @homepage http://greasyfork.icu/scripts/19616 // ==/UserScript== (function () { 'use strict'; /** * HTML、XML、DOMに関するメソッド等。 */ window.MarkupUtils = { /** * Atom名前空間。 * @constant {string} */ ATOM_NAMESPACE: 'http://www.w3.org/2005/Atom', /** * XMLの特殊文字と文字参照の変換テーブル。 * @constant {Object.<string>} */ CHARACTER_REFERENCES_TRANSLATION_TABLE: { '&': '&', '<': '<', '>': '>', '"': '"', "'": ''', }, /** * XMLの特殊文字を文字参照に置換します。 * @see [html - HtmlSpecialChars equivalent in Javascript? - Stack Overflow]{@link http://stackoverflow.com/a/4835406} * @param {string} str - プレーンな文字列。 * @returns {string} HTMLとして扱われる文字列。 */ convertSpecialCharactersToCharacterReferences(str) { return String(str).replace( /[&<>"']/g, specialCharcter => this.CHARACTER_REFERENCES_TRANSLATION_TABLE[specialCharcter] ); }, /** * テンプレート文字列のタグとして用いることで、式内にあるXMLの特殊文字を文字参照に置換します。 * @param {string[]} htmlTexts * @param {...string} plainText * @returns {string} HTMLとして扱われる文字列。 */ escapeTemplateStrings(htmlTexts, ...plainTexts) { return String.raw( htmlTexts, ...plainTexts.map(plainText => this.convertSpecialCharactersToCharacterReferences(plainText)) ); }, /** * 指定したURLからファイルをダウンロードします。 * @param {string} url * @param {string} filename */ download(url, filename) { let body = document.body; body.insertAdjacentHTML('beforeend', h`<a href="${url}" download="${filename}" hidden=""></a>`); let anchor = body.lastElementChild; anchor.click(); anchor.remove(); } }; /** * {@link MarkupUtils.escapeTemplateStrings}、または {@link MarkupUtils.convertSpecialCharactersToCharacterReferences} の短縮表記。 * @example * // returns "<code><a href="https://example.com/"link text</a></code>" * h`<code>${'<a href="https://example.com/">link text</a>'}</code>`; * @example * // returns "<a href="https://example.com/"link text</a>" * h('<a href="https://example.com/">link text</a>'); */ window.h = function () { return Array.isArray(arguments[0]) ? MarkupUtils.escapeTemplateStrings(...arguments) : MarkupUtils.convertSpecialCharactersToCharacterReferences(arguments[0]); }; /** * 文字、文字列の処理を行うメソッド等。 */ window.StringProcessor = { /** * ひらがなをカタカナに変換するときの加数。 * @constant {number} */ ADDEND_HIRAGANA_TO_KATAKANA: 'ァ'.charCodeAt() - 'ぁ'.charCodeAt(), /** * ひらがなをカタカナに変換します。 * @param {string} str * @returns {string} */ convertToKatakana(str) { return str.replace( /[ぁ-ゖ]/g, match => String.fromCharCode(match.charCodeAt() + this.ADDEND_HIRAGANA_TO_KATAKANA) ); }, }; })();