手动更改 GoDaddy 域名的 DNS 服务器,允许用户输入域名服务器并点击按钮进行填充
当前为
// ==UserScript==
// @name GoDaddy Nameserver Changer with User Input and Button
// @namespace http://tampermonkey.net/
// @version 1.8
// @description 手动更改 GoDaddy 域名的 DNS 服务器,允许用户输入域名服务器并点击按钮进行填充
// @author hatrd
// @match https://dcc.godaddy.com/control/portfolio/*
// @grant none
// @license MIT
// ==/UserScript==
(function() {
'use strict';
// 创建并添加输入区域和按钮
function createUI() {
const container = document.createElement('div');
container.style.position = 'fixed';
container.style.top = '10px';
container.style.right = '10px';
container.style.zIndex = '9999';
container.style.backgroundColor = '#fff';
container.style.border = '1px solid #ccc';
container.style.padding = '10px';
container.style.boxShadow = '0 0 10px rgba(0,0,0,0.1)';
const textarea = document.createElement('textarea');
textarea.rows = 4;
textarea.cols = 40;
textarea.placeholder = '请输入域名服务器,每行一个,最多四个';
const button = document.createElement('button');
button.textContent = '填充域名服务器';
button.addEventListener('click', () => {
const userInput = textarea.value;
if (userInput) {
// 将用户输入的内容按行分割
const newNameservers = userInput.split('\n').map(ns => ns.trim()).filter(ns => ns);
// 去除末尾的点
const sanitizedNameservers = newNameservers.map(ns => ns.replace(/\.$/, ''));
// 填写域名服务器输入框
function fillNameservers() {
let currentIndex = 0;
function fillNextNameserver() {
if (currentIndex >= sanitizedNameservers.length) return;
const ns = sanitizedNameservers[currentIndex];
const nsInputId = `#nameserver${currentIndex + 1}`;
waitForElement(nsInputId, (nsInput) => {
nsInput.focus();
// 模拟粘贴输入
nsInput.value = ''; // 清空输入框内容
nsInput.select();
document.execCommand('insertText', false, ns); // 插入文本
nsInput.dispatchEvent(new Event('input', { bubbles: true })); // 触发输入事件
nsInput.dispatchEvent(new Event('change', { bubbles: true })); // 触发更改事件
currentIndex++;
});
// 递归调用填写下一个域名服务器
if (currentIndex < sanitizedNameservers.length) {
setTimeout(fillNextNameserver, 500 + Math.random() * 500); // 添加随机时间间隔
}
}
fillNextNameserver();
}
// 等待指定元素加载完毕的函数
function waitForElement(selector, callback) {
const interval = setInterval(() => {
const element = document.querySelector(selector);
if (element) {
clearInterval(interval);
callback(element);
}
}, 100);
}
// 开始填充
fillNameservers();
}
});
container.appendChild(textarea);
container.appendChild(button);
document.body.appendChild(container);
}
// 等待页面加载完毕后创建UI
window.addEventListener('load', createUI);
})();