// ==UserScript==
// @name 文本替换插件1
// @namespace your-namespace
// @version 1.0
// @description 在网页中替换文本
// @match http://*/*
// @match https://*/*
// @grant none
// @license MIT
// @downloadURL none
// ==/UserScript==
(function() {
'use strict';
var originalText = '';
var replacementText = '';
// 创建弹窗
var dialog = document.createElement('div');
dialog.innerHTML = `
请输入要替换的文本:
请输入替换后的文本:
`;
dialog.style.position = 'fixed';
dialog.style.top = '20px';
dialog.style.right = '20px';
dialog.style.backgroundColor = '#000';
dialog.style.color = '#fff';
dialog.style.padding = '20px';
dialog.style.border = '1px solid #ccc';
dialog.style.boxShadow = '0 0 10px rgba(0, 0, 0, 0.1)';
dialog.style.zIndex = '9999';
dialog.style.display = 'none';
document.body.appendChild(dialog);
// 按下 Ctrl+Alt+H 键时触发
document.addEventListener('keydown', function(event) {
if (event.ctrlKey && event.altKey && event.key === 'h') {
dialog.style.display = 'block'; // 显示弹窗
}
});
// 点击替换按钮时触发
document.getElementById('replaceButton').addEventListener('click', function() {
originalText = document.getElementById('originalText').value;
replacementText = document.getElementById('replacementText').value;
replaceText();
});
// 点击撤销按钮时触发
document.getElementById('undoButton').addEventListener('click', function() {
originalText = document.getElementById('replacementText').value;
replacementText = document.getElementById('originalText').value;
replaceText();
});
// 点击关闭按钮时触发
document.getElementById('closeButton').addEventListener('click', function() {
dialog.style.display = 'none'; // 关闭弹窗
});
// 执行文本替换操作
function replaceText() {
var elements = document.getElementsByTagName('*');
for (var i = 0; i < elements.length; i++) {
var element = elements[i];
for (var j = 0; j < element.childNodes.length; j++) {
var node = element.childNodes[j];
if (node.nodeType === 3) {
var text = node.nodeValue;
var replacedText = text.replace(new RegExp(originalText, 'g'), replacementText);
if (replacedText !== text) {
element.replaceChild(document.createTextNode(replacedText), node);
}
}
}
}
}
})();