GoDaddy Nameserver Changer with User Input and Button

手动更改 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);
})();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址