popup.js 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. const statusEl = document.getElementById('status');
  2. function setStatus(message, type = '') {
  3. statusEl.textContent = message;
  4. statusEl.className = type;
  5. }
  6. async function sendAction(mode) {
  7. const [tab] = await chrome.tabs.query({ active: true, currentWindow: true });
  8. return new Promise((resolve) => {
  9. chrome.tabs.sendMessage(
  10. tab.id,
  11. { type: 'GRAMMAR_ANALYZE', mode },
  12. (response) => {
  13. if (chrome.runtime.lastError) {
  14. setStatus('内容脚本不可用,请刷新页面。', 'error');
  15. resolve();
  16. return;
  17. }
  18. if (!response) {
  19. setStatus('没有收到任何响应。', 'error');
  20. resolve();
  21. return;
  22. }
  23. if (response.error) {
  24. setStatus(response.error, 'error');
  25. } else {
  26. setStatus('已完成高亮。', 'success');
  27. }
  28. resolve();
  29. }
  30. );
  31. });
  32. }
  33. for (const button of document.querySelectorAll('button[data-mode]')) {
  34. button.addEventListener('click', async () => {
  35. const mode = button.dataset.mode;
  36. setStatus('处理中...', '');
  37. await sendAction(mode);
  38. });
  39. }