您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
functions allowing to get the CSS rules applied to an element
当前为
此脚本不应直接安装。它是供其他脚本使用的外部库,要使用该库请加入元指令 // @require https://update.cn-greasyfork.org/scripts/394970/768130/CSS%20rules%20utilities.js
- // ==UserScript==
- // @name CSS rules utilities
- // @namespace http://tampermonkey.net/
- // @version 0.3
- // @description functions allowing to get the CSS rules applied to an element
- // @author CoStiC
- // @match *://*/*
- // @grant none
- // ==/UserScript==
- function findCssRules(el) {
- var sheets = document.styleSheets, ret = [];
- el.matches = el.matches || el.webkitMatchesSelector || el.mozMatchesSelector || el.msMatchesSelector || el.oMatchesSelector;
- for (var i in sheets) {
- var rules = sheets[i].rules || sheets[i].cssRules;
- for (var r in rules) {
- if (el.matches(rules[r].selectorText)) {
- ret.push(rules[r].cssText);
- }
- }
- }
- return ret;
- }
- function modCssRules(el, newRule, frDoc) {
- if (!frDoc) frDoc = window.document;
- var elHover = "";
- var sheets = frDoc.styleSheets;
- if (el !== null) {
- el.matches = el.matches || el.webkitMatchesSelector || el.mozMatchesSelector || el.msMatchesSelector || el.oMatchesSelector;
- for (var sheet in sheets) {
- var rules = sheets[sheet].rules || sheets[sheet].cssRules;
- for (var rule in rules) {
- if (rules[rule].type === 1) {
- if (el.matches(rules[rule].selectorText)) {
- let oldRulesList = rules[rule].style.cssText,
- oldRules = oldRulesList.split(";"),
- newRulesList = "";
- oldRules.pop();
- for (let newProp in newRule.cssNormal) {
- el.style[newProp] = newRule.cssNormal[newProp];
- for (let oldRule of oldRules) {
- oldRule = oldRule.trim();
- let oldProp = oldRule.split(":")[0];
- if (oldProp === newProp) {
- newRulesList += newProp + ":" + newRule.cssNormal[newProp] + ";";
- el.style[newProp] = newRule.cssNormal[newProp];
- } else {
- newRulesList += oldRule + ";";
- };
- }
- rules[rule].style.cssText = newRulesList;
- }
- if (typeof newRule.cssHover !== 'undefined') {
- var rul = "";
- for (let propHover in newRule.cssHover) {
- rul += `${propHover}:${newRule.cssHover[propHover]} !important;`;
- };
- elHover = `${rules[rule].selectorText}:hover{${rul}}`;
- }
- } else {};
- }
- }
- }
- }
- if (elHover !== "") {
- let newHoverStyle = document.createElement('style'),
- hoverRule = document.createTextNode(elHover);
- newHoverStyle.appendChild(hoverRule);
- document.head.appendChild(newHoverStyle)
- //sheets[sheets.length - 1].insertRule(elHover);
- };
- }