您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
dom取得等の機能追加
当前为
此脚本不应直接安装。它是供其他脚本使用的外部库,要使用该库请加入元指令 // @require https://update.greasyfork.icu/scripts/419955/983062/y_method.js
// ==UserScript== // @name y_method // @version 0.1.4 // @description dom取得等の機能追加 // @author y_kahou // ==/UserScript== /** * スタイルを追加する * @param id {string} - スタイルのID * @param css {string} - css本体 */ function addStyle(id, css) { let style = document.createElement('style') style.id = id style.type = 'text/css' style.textContent = css document.querySelector('head').appendChild(style) } /** * 対象までスクロールせずにクリックする * @param selector {string} - 取得対象のセレクタ */ function click_(element) { let x = window.scrollX, y = window.scrollY element.click() window.scrollTo(x, y) } /** * 対象までスクロールせずにフォーカスする * @param selector {string} - 取得対象のセレクタ */ function focus_(element) { let x = window.scrollX, y = window.scrollY element.focus() window.scrollTo(x, y) } /** * 対象のdomを取得できるまで取得を挑戦する * @param selector {string} - 取得対象のセレクタ * @param interval {number} - 次の挑戦までの時間ms * @param repeat {number} - 繰り返し回数 */ function repeatGetElements(selector, interval = 500, repeat = 60) { return new Promise(function(resolve, reject) { let cnt = 0 let it = setInterval(function() { if (++cnt > repeat) { clearInterval(it) reject("Could'n get " + selector) } let ret = document.querySelectorAll(selector) if (ret.length > 0) { clearInterval(it) resolve(ret) } }, interval) }) } /** * src込みのvideo要素の取得 */ async function getVideo(selector = 'video') { let video for (var i = 0; i < 60; i++) { video = await repeatGetElements(selector) if (video[0].getAttribute('src')) break await wait(500) } return video } /** * ファイル名に使えない文字を半角から全角へ変換する * @param name {string} - ファイル名 */ function filenameEscape(name) { const target = ['\\', '/', ':', '*', '?', '"', '<', '>', '|', ] const rep = ['\', '/', ':', '*', '?', '”', '<', '>', '|', ] let ename = name for (let i = 0; i < target.length; i++) { ename = ename.replaceAll(target[i], rep[i]) } return ename } if (window.jQuery) (function($) { /** * 対象までスクロールせずにクリックする */ $.fn.click_ = function() { click_(this[0]) return this } /** * 対象までスクロールせずにフォーカスする */ $.fn.focus_ = function() { focus_(this[0]) return this } })(window.jQuery);