您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
把网页中的所有内联的<code>标签替换成同样式<span>,以修复Edge内置翻译器bug
- // ==UserScript==
- // @name Fix <code> bug for Edge translator
- // @name:zh-CN Fix <code> bug for Edge translator
- // @namespace http://tampermonkey.net/
- // @version 1.0.2
- // @description Replace <code> tags with styled <span> to fix the bug of Edge's translator.
- // @description:zh-CN 把网页中的所有内联的<code>标签替换成同样式<span>,以修复Edge内置翻译器bug
- // @author yqs112358
- // @license MIT
- // @match *://*/*
- // @grant none
- // @run-at document-idle
- // ==/UserScript==
- (function() {
- 'use strict';
- // Replace a single <code> tag with a same-styled <span>
- function replaceCodeToSpan(codeNode) {
- // only process <code> without any child element
- if (codeNode.tagName === 'CODE' && codeNode.children.length === 0) {
- const spanNode = document.createElement('span');
- // Copy all attributes
- Array.from(codeNode.attributes).forEach(attr => {
- spanNode.setAttribute(attr.name, attr.value);
- });
- // Copy all computed styles
- const computedStyle = window.getComputedStyle(codeNode);
- for (let key of computedStyle) {
- spanNode.style[key] = computedStyle[key];
- }
- // Copy InnerHTML
- spanNode.innerHTML = codeNode.innerHTML;
- codeNode.parentNode.replaceChild(spanNode, codeNode);
- }
- }
- // Walkthrough a node and its child to replace <code> tags
- function processNodeAndChild(node) {
- if (node.nodeType === 1) { // Element node
- node.querySelectorAll('code').forEach(replaceCodeToSpan);
- replaceCodeToSpan(node);
- }
- }
- ////////////////////////////////////////////////////////
- // Replace <code> at startup
- document.querySelectorAll('code').forEach(replaceCodeToSpan);
- // Observe DOM changes and replace new-generated <code> if needed
- const observer = new MutationObserver(function(mutations) {
- mutations.forEach(function(mutation) {
- mutation.addedNodes.forEach(processNodeAndChild);
- });
- });
- observer.observe(document.body, {
- childList: true,
- subtree: true
- });
- })();