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
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);
|
|
}
|
|
});
|
|
});
|