Warning: fopen(/www/sites/update.greasyfork.icu/index/store/temp/8ae56b83c2efb95ee4fc0c48c9c8e90d.js): failed to open stream: No space left on device in /www/sites/update.greasyfork.icu/index/scriptControl.php on line 65
// ==UserScript==
// @name 一键复制公式
// @namespace http://tampermonkey.net/
// @version 0.7
// @description Click to copy equation in Wikipedia and Zhihu
// @author flaribbit
// @match http://*.wikipedia.org/*
// @match https://*.wikipedia.org/*
// @match http://www.wikiwand.com/*
// @match https://www.wikiwand.com/*
// @match https://www.zhihu.com/question/*
// @match https://zhuanlan.zhihu.com/p/*
// @match https://blog.csdn.net/*/article/*
// @grant none
// @downloadURL https://update.greasyfork.icu/scripts/397740/%E4%B8%80%E9%94%AE%E5%A4%8D%E5%88%B6%E5%85%AC%E5%BC%8F.user.js
// @updateURL https://update.greasyfork.icu/scripts/397740/%E4%B8%80%E9%94%AE%E5%A4%8D%E5%88%B6%E5%85%AC%E5%BC%8F.meta.js
// ==/UserScript==
(function () {
'use strict';
const host = document.location.host;
const el = document.createElement('style');
el.innerText = '@keyframes aniclick{0%{background:#03A9F400}20%{background:#03A9F47F}100%{background:#03A9F400}}';
document.head.appendChild(el);
const clearAnimation = function () {
this.style.animation = '';
}
if (host.search('wikipedia') >= 0) {
const copyTex = function () {
navigator.clipboard.writeText('$' + this.alt + '$');
this.style.animation = 'aniclick .4s';
}
const eqs = document.querySelectorAll('.mwe-math-fallback-image-inline, .mwe-math-fallback-image-display');
for (let i = 0; i < eqs.length; i++) {
eqs[i].onclick = copyTex;
eqs[i].addEventListener('animationend', clearAnimation);
eqs[i].title = '点击即可复制公式';
}
} else if (host.search('wikiwand') >= 0){
const copyTex = function () {
const tex = this.getElementsByTagName('math')[0].getAttribute("alttext");
navigator.clipboard.writeText('$' + tex + '$');
this.style.animation = 'aniclick .4s';
}
const check_equations = (mutationList, observer) => {
const eqs = document.querySelectorAll('.mwe-math-element');
for (let i = 0; i < eqs.length; i++) {
eqs[i].onclick = copyTex;
eqs[i].addEventListener('animationend', clearAnimation);
eqs[i].title = '点击即可复制公式';
}
}
const targetNode = document.getElementsByTagName('article')[0];
const config = { attributes: false, childList: true, subtree: true };
const observer = new MutationObserver(check_equations);
observer.observe(targetNode, config);
} else if (host.search('zhihu') >= 0) {
const copyTex = function () {
navigator.clipboard.writeText('$' + this.getAttribute('data-tex') + '$');
this.style.animation = 'aniclick .4s';
}
const check_equations = function () {
if (document.visibilityState == 'visible') {
const eqs = document.querySelectorAll('.ztext-math');
for (let i = 0; i < eqs.length; i++) {
eqs[i].onclick = copyTex;
eqs[i].addEventListener('animationend', clearAnimation);
eqs[i].title = '点击即可复制公式';
}
}
}
if (document.location.href.search('question') >= 0) {
setInterval(check_equations, 1000);
} else {
check_equations();
}
} else if (host.search('blog.csdn') >= 0) {
const copyTex = function () {
navigator.clipboard.writeText('$' + this.querySelector('annotation').textContent.trim() + '$');
this.style.animation = 'aniclick .4s';
}
const eqs = document.querySelectorAll('.katex');
for (let i = 0; i < eqs.length; i++) {
eqs[i].onclick = copyTex;
eqs[i].addEventListener('animationend', clearAnimation);
eqs[i].title = '点击即可复制公式';
}
}
})();