您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Adds a button that copies MathML code to the clipboard.
- // ==UserScript==
- // @name MathML Copy Button
- // @namespace http://tampermonkey.net/
- // @version 1.1
- // @description Adds a button that copies MathML code to the clipboard.
- // @author Remakker
- // @match https://p2t.breezedeus.com/*
- // @grant GM_setClipboard
- // @licence MIT
- // ==/UserScript==
- (() => {
- 'use strict';
- const copyMathML = () => {
- const inputElement = document.querySelector('mjx-assistive-mml');
- if (!inputElement) return console.error("Cannot find the element containing MathML code!");
- GM_setClipboard(inputElement.innerHTML);
- };
- const applyStylesFromCSSRule = (targetElem, selector) => {
- Array.from(document.styleSheets).forEach(sheet => {
- let rules;
- try {
- rules = sheet.cssRules;
- } catch (e) {
- return;
- }
- if (!rules) return;
- Array.from(rules).forEach(rule => {
- if (rule.type === CSSRule.STYLE_RULE && rule.selectorText === selector) {
- for (let i = 0; i < rule.style.length; i++) {
- const propertyName = rule.style[i];
- const value = rule.style.getPropertyValue(propertyName);
- const priority = rule.style.getPropertyPriority(propertyName);
- targetElem.style.setProperty(propertyName, value, priority);
- }
- }
- });
- });
- };
- const addCopyButton = () => {
- const originalButton = document.querySelector('#copyAsin');
- const newContainer = document.querySelector('#box');
- if (!originalButton || !newContainer) return console.error('Required element(s) not found');
- const newButton = originalButton.cloneNode(true);
- newButton.id = 'newButton';
- newButton.removeAttribute('data-clipboard-text');
- newButton.addEventListener("click", copyMathML);
- const specificSelector = ".Index_indexBox__s5lfQ .Index_index__GsKUn .Index_content__IDt4D > .Index_textAreaBox__ne32- .Index_copy__k5Mir";
- applyStylesFromCSSRule(newButton, specificSelector);
- newContainer.appendChild(newButton);
- };
- window.addEventListener('load', addCopyButton);
- })();