您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
CIA Contact Modal 자동 열기 + Online Form 자동 선택 + 입력 필드 자동채우기
// ==UserScript== // @name CIA Contact Form Autofill // @namespace https://www.cia.gov/ // @version 1.0.0 // @description CIA Contact Modal 자동 열기 + Online Form 자동 선택 + 입력 필드 자동채우기 // @match https://www.cia.gov/* // @grant none // @run-at document-end // @license MIT // ==/UserScript== (function() { 'use strict'; // 🔧 사용자 정보 const PROFILE = { email: '[email protected]', sender: 'YourName', ph_cc: '+82', phone_num: '1012345678', mobilecc: '+82', mobilenum: '1012345678' }; console.log('💡 CIA Autofill v1.9.5 (DOM-ready)'); function setReactValue(el, value) { const setter = Object.getOwnPropertyDescriptor(Object.getPrototypeOf(el), 'value').set; setter.call(el, value); el.dispatchEvent(new Event('input', { bubbles: true })); el.dispatchEvent(new Event('change', { bubbles: true })); } function fillFieldsOnly() { console.log('💡 Filling fields (message omitted)…'); Object.entries(PROFILE).forEach(([name, val]) => { const el = document.querySelector(`[name="${name}"]`) || document.getElementById(name); if (el) { setReactValue(el, val); console.log(` • ${name} → ${val}`); } }); } function openContactModal() { const btn = Array.from(document.querySelectorAll('button, a')) .find(el => /contact cia/i.test(el.textContent)); if (btn) { console.log('💡 Opening Contact CIA modal'); btn.click(); } else { console.warn('❌ Modal button not found'); } } function startObserver() { const obs = new MutationObserver((mutations, observer) => { const tabs = document.querySelectorAll('li.contact-us-modal__tab'); if (tabs.length) { const online = Array.from(tabs).find(el => el.textContent.trim() === 'Online Form'); if (online) { console.log('💡 Found Online Form tab, clicking…'); online.click(); setTimeout(() => { if (document.querySelector('[name="email"]')) { fillFieldsOnly(); observer.disconnect(); } }, 300); } } }); obs.observe(document.body, { childList: true, subtree: true }); } function runScript() { openContactModal(); startObserver(); } // ✅ DOM 준비 상태에 따라 즉시 실행 or 대기 if (document.readyState === 'complete' || document.readyState === 'interactive') { runScript(); } else { document.addEventListener('DOMContentLoaded', runScript); } })();