You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

53 lines
1.8 KiB
JavaScript

// popup.js
document.addEventListener('DOMContentLoaded', () => {
const pasteBtn = document.getElementById('paste');
const injectBtn = document.getElementById('inject');
const cookieInput = document.getElementById('cookie');
pasteBtn.addEventListener('click', async () => {
try {
const clipboardText = await navigator.clipboard.readText();
cookieInput.value = clipboardText;
} catch (err) {
alert('❌ 无法读取剪贴板:' + err.message);
}
});
injectBtn.addEventListener('click', async () => {
const [tab] = await chrome.tabs.query({ active: true, currentWindow: true });
const cookies = cookieInput.value.trim();
if (!cookies) {
alert('请输入 Cookie 内容');
return;
}
try {
// ✅ 通过 message 发送给 background.js
// 使用 Promise 方式处理响应
const response = await new Promise((resolve) => {
chrome.runtime.sendMessage(
{
action: 'injectCookies',
cookies: cookies,
tabId: tab.id,
},
resolve
);
});
// 检查响应是否存在
if (response && response.success) {
alert('✅ Cookie 注入成功!');
} else if (response && response.message) {
alert('❌ 注入失败:' + response.message);
} else {
alert('❌ 注入失败:未知错误');
}
} catch (error) {
console.error('发送消息失败:', error);
alert('❌ 消息发送失败:' + error.message);
}
});
});