您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Add an inputbox for editing the HTML code of message signature on General tab of the settings page
- // ==UserScript==
- // @name Google Mail Signature HTML Code Editor
- // @namespace https://greasyfork.org/en/users/85671-jcunews
- // @version 1.0.1
- // @license AGPL v3
- // @author jcunews
- // @description Add an inputbox for editing the HTML code of message signature on General tab of the settings page
- // @match https://mail.google.com/mail/*
- // @grant none
- // ==/UserScript==
- ((rxBlockTags, timerCheck, eleSigContainer, eleSigHtml, sigHtmlChanged, prevFormatted) => {
- function check(e) {
- if (eleSigContainer = document.querySelector('.Ia .editable[aria-label="Signature"]')) {
- if (!document.getElementById("sigHtml")) {
- if (e = eleSigContainer.closest('.Ia')) e.style.height = "auto";
- eleSigContainer.insertAdjacentHTML("beforebegin", `\
- <div style="padding:0 .3em;background:#bdd;font-weight:bold">HTML Code</div>
- <textarea id="sigHtml" style="box-sizing:border-box;width:100%;min-height:8em;resize:vertical;font:10pt/1.5em monospace"></textarea>
- <div style="padding:0 .3em;background:#bdd;font-weight:bold">Formatted Content</div>`);
- (eleSigHtml = document.getElementById("sigHtml")).oninput = () => {
- sigHtmlChanged = true;
- eleSigContainer.innerHTML = eleSigHtml.value
- };
- prevFormatted = ""
- }
- if (sigHtmlChanged) {
- sigHtmlChanged = false
- } else if (eleSigContainer.innerHTML !== prevFormatted) {
- eleSigHtml.value = prevFormatted = eleSigContainer.innerHTML.replace(rxBlockTags, "$1\n$2")
- }
- } else eleSigContainer = eleSigHtml = null
- }
- rxBlockTags = new RegExp("(>)[ \\t]*?(<(?:\
- aside|br|blockquote|body|caption|center|col(?:group)?|datalist|dd|details|dialog|di[rv]|\
- fieldset|figcaption|figure|footer|form|frame(?:set)?|h[1-6r]|head(?:er)?|html|\
- main|menu|nav|ol|option|p(?:re)|section|summary|table|td|tbody|tfoot|th(?:ead)?|tr|ul\
- )>)", "gi");
- (new MutationObserver(recs => {
- clearTimeout(timerCheck);
- timerCheck = setTimeout(check, 100);
- timerCheck = 0
- })).observe(document, {childList: true, subtree: true})
- })()