apple click

3/4/2025, 2:50:18 PM

// ==UserScript==
// @name        apple click
// @namespace   Violentmonkey Scripts
// @match       https://account.apple.com/account/manage/section/privacy*
// @grant       none
// @version     1.0.1
// @author      -
// @license MIT
// @description 3/4/2025, 2:50:18 PM
// ==/UserScript==
function delay(timeout){
  return new Promise((reslove)=>{
    setTimeout(reslove, timeout)
  })
}

async function init(){
  await waitForSelector('.hide-my-email__icon-container .icon-plus')
  document.querySelector('.hide-my-email__icon-container .icon-plus').click()
  await delay(3000)
  await waitForSelector('.hide-my-email__section input')
  document.querySelector('.hide-my-email__section input').focus()
  document.querySelector('.hide-my-email__section input').value = '1'
  triggerInputChange(document.querySelector('.hide-my-email__section input'), '123')
  await delay(3000)
  await waitForSelector('.modal-button-bar .button-bar-side [type=submit]')
  document.querySelector('.modal-button-bar .button-bar-side [type=submit]').click();
  await delay(3000)
  await waitForSelector('.hide-my-email__detail-email-section-action-right')
  document.querySelector('.modal-button-bar .button-bar-side [type=button]').click();
  await delay(1000 * 60 * 1)
  await init()
}

const triggerInputChange = (node, inputValue) => {
      const descriptor = Object.getOwnPropertyDescriptor(node, 'value');

      node.value = `${inputValue}#`;
      if (descriptor && descriptor.configurable) {
        delete node.value;
      }
      node.value = inputValue;

      const e = document.createEvent('HTMLEvents');
      e.initEvent('change', true, false);
      node.dispatchEvent(e);

      if (descriptor) {
        Object.defineProperty(node, 'value', descriptor);
      }
}

(function() {

    // 创建按钮元素
    const button = document.createElement('button');
    button.textContent = '启动';

    // 设置按钮样式
    button.style.position = 'fixed';
    button.style.bottom = '30px';
    button.style.right = '30px';
    button.style.zIndex = '999999'; // 确保按钮在最上层
    button.style.padding = '10px 20px';
    button.style.fontSize = '16px';
    button.style.fontFamily = 'Arial, sans-serif';
    button.style.color = '#fff';
    button.style.backgroundColor = '#007BFF'; // 蓝色背景
    button.style.border = 'none';
    button.style.borderRadius = '25px'; // 圆角
    button.style.boxShadow = '0 4px 6px rgba(0, 0, 0, 0.1)'; // 阴影
    button.style.cursor = 'pointer';
    button.style.transition = 'all 0.3s ease'; // 过渡动画

    // 悬浮效果
    button.addEventListener('mouseover', () => {
        button.style.backgroundColor = '#0056b3'; // 深蓝色
        button.style.transform = 'translateY(-2px)'; // 轻微上移
        button.style.boxShadow = '0 6px 12px rgba(0, 0, 0, 0.2)';
    });
    button.addEventListener('mouseout', () => {
        button.style.backgroundColor = '#007BFF';
        button.style.transform = 'translateY(0)';
        button.style.boxShadow = '0 4px 6px rgba(0, 0, 0, 0.1)';
    });

    // 点击触发 init 事件
    button.addEventListener('click', () => {
      init();
    });

    // 将按钮添加到页面
    document.body.appendChild(button);

})();




    let version = '1.0.1'

    // Create new observer on body to monitor all DOM changes
    let observer = new MutationObserver(mutationHandler)
    observer.observe(document.getElementsByTagName('html')[0], { childList: true, subtree: true })

    // Interface for interacting with the library
    let interface = {
        version,
        observer: observer,
        wait: waitForSelector,
        unwait: unwaitID,
        waits: {},
        waitsByID: {},
        nextID: 0,
    }

    // Start
    installInterface()

    // Creates a new entry to search for whenever a new element is added to the DOM
    function waitForSelector(selector, callback) {
        return new Promise((resolve)=>{
          if (!interface.waits[selector]) interface.waits[selector] = {}
        interface.waits[selector][interface.nextID] = ()=>resolve()
        interface.waitsByID[interface.nextID] = selector
        search(selector, true)
        return interface.nextID++
        })
    }

    // Deletes a previously registered selector
    function unwaitID(ID) {
        delete interface.waits[interface.waitsByID[ID]][ID]
        delete interface.waitsByID[ID]
    }

    // Makes sure that the public interface is the newest version and the same as the local one
    function installInterface() {
        window.wfs = interface
        interface = wfs || interface
    }

    // Waits until there has been more than 300 ms between mutations and then checks for new elements
    let lastMutationDate = 0 // Epoch of last mutation event
    let timeoutID = 0
    function mutationHandler(mutations) {
        let duration = Date.now() - lastMutationDate
        lastMutationDate = Date.now()
        if (duration < 300) {
            clearTimeout(timeoutID)
            timeoutID = setTimeout(() => {
                for (let selector in interface.waits) search(selector)
            }, 300)
        }
    }

    // Searches for the selector and calls the callback on the found elements
    function search(selector, all = false) {
        document.querySelectorAll(selector).forEach((e, i) => {
            let callbacks = Object.values(interface.waits[selector])
            if (all || !e.WFSFound || e.WFSFound == lastMutationDate) {
                for (let callback of callbacks) callback(e)
                e.WFSFound = lastMutationDate
            }
        })
    }

QingJ © 2025

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