// General Auto - Content Script console.log('General Auto 内容脚本已加载'); // 注入自定义脚本到页面 const script = document.createElement('script'); script.src = chrome.runtime.getURL('injected.js'); script.onload = function() { this.remove(); }; (document.head || document.documentElement).appendChild(script); // 监听页面消息 window.addEventListener('message', function(event) { if (event.source !== window) return; if (event.data.type && event.data.type === 'FROM_PAGE') { console.log('Content script 收到页面消息:', event.data); // 转发到 background script chrome.runtime.sendMessage({ action: event.data.action, data: event.data.data }, response => { if (response) { window.postMessage({ type: 'FROM_EXTENSION', action: event.data.action, requestId: event.data.requestId, data: response }, '*'); } }); } }); // 提供 API 供外部调用 window.GeneralAuto = { version: '1.0.0', // 执行任务 executeTask: async function(task) { return new Promise((resolve, reject) => { chrome.runtime.sendMessage({ action: 'executeTask', task: task }, response => { if (chrome.runtime.lastError) { reject(new Error(chrome.runtime.lastError.message)); } else if (response && response.success) { resolve(response.data); } else { reject(new Error(response ? response.error : '未知错误')); } }); }); }, // 执行自定义脚本 executeScript: async function(code) { return new Promise((resolve, reject) => { chrome.runtime.sendMessage({ action: 'executeScript', code: code }, response => { if (chrome.runtime.lastError) { reject(new Error(chrome.runtime.lastError.message)); } else if (response && response.success) { resolve(response.data); } else { reject(new Error(response ? response.error : '未知错误')); } }); }); }, // 获取 Cookies getCookies: async function(url) { return new Promise((resolve, reject) => { chrome.runtime.sendMessage({ action: 'getCookies', url: url || window.location.href }, response => { if (chrome.runtime.lastError) { reject(new Error(chrome.runtime.lastError.message)); } else if (response && response.success) { resolve(response.cookies); } else { reject(new Error(response ? response.error : '未知错误')); } }); }); }, // 设置 Cookies setCookies: async function(cookies) { return new Promise((resolve, reject) => { chrome.runtime.sendMessage({ action: 'setCookies', cookies: cookies }, response => { if (chrome.runtime.lastError) { reject(new Error(chrome.runtime.lastError.message)); } else if (response && response.success) { resolve(); } else { reject(new Error(response ? response.error : '未知错误')); } }); }); }, // 清除 Cookies clearCookies: async function(url) { return new Promise((resolve, reject) => { chrome.runtime.sendMessage({ action: 'clearCookies', url: url || window.location.href }, response => { if (chrome.runtime.lastError) { reject(new Error(chrome.runtime.lastError.message)); } else if (response && response.success) { resolve(); } else { reject(new Error(response ? response.error : '未知错误')); } }); }); }, // 导航到指定 URL navigateTo: async function(url) { return new Promise((resolve, reject) => { chrome.runtime.sendMessage({ action: 'navigateTo', url: url }, response => { if (chrome.runtime.lastError) { reject(new Error(chrome.runtime.lastError.message)); } else if (response && response.success) { resolve(); } else { reject(new Error(response ? response.error : '未知错误')); } }); }); }, // 获取请求日志 getRequestLogs: async function() { return new Promise((resolve, reject) => { chrome.runtime.sendMessage({ action: 'getRequestLogs' }, response => { if (chrome.runtime.lastError) { reject(new Error(chrome.runtime.lastError.message)); } else if (response && response.success) { resolve(response.logs); } else { reject(new Error(response ? response.error : '未知错误')); } }); }); }, // 清除请求日志 clearRequestLogs: async function() { return new Promise((resolve, reject) => { chrome.runtime.sendMessage({ action: 'clearRequestLogs' }, response => { if (chrome.runtime.lastError) { reject(new Error(chrome.runtime.lastError.message)); } else if (response && response.success) { resolve(); } else { reject(new Error(response ? response.error : '未知错误')); } }); }); } }; // 导出到全局 window.GA = window.GeneralAuto; console.log('GeneralAuto API 已就绪');