popup.js 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. const buttonItem = document.getElementsByTagName('button')[0]
  2. const serverUrl = 'http://127.0.0.1:8005'
  3. const getSchemeData = new Promise((resolve, reject) => {
  4. getCurrentTabId((tabInfo) => {
  5. fetch(`${serverUrl}/?edition=1&url=${tabInfo.url}`).then(data => data.json()).then(dataTemp => {
  6. dataTemp.tabInfo = tabInfo
  7. resolve(dataTemp)
  8. })
  9. })
  10. })
  11. buttonItem.onclick = function () {
  12. getSchemeData.then((dataTemp) => {
  13. if (dataTemp.err === 0) {
  14. // console.log(dataTemp.type)
  15. switch (dataTemp.type) {
  16. case 'run': {
  17. chrome.notifications.create(null, {
  18. type: 'basic',
  19. iconUrl: 'img/48.png',
  20. title: '运行方案',
  21. message: '远程方案以载入并运行!'
  22. })
  23. // console.log(unescape(dataTemp.data))
  24. chrome.tabs.executeScript(dataTemp.tabInfo.id, {code: unescape(dataTemp.data)})
  25. break
  26. }
  27. }
  28. } else if (dataTemp.err === 999) {
  29. chrome.notifications.create(null, {
  30. type: 'basic',
  31. iconUrl: 'img/48.png',
  32. title: '版本过低',
  33. message: '有新版本请在弹出页面下载最新插件!'
  34. })
  35. // console.log(unescape(dataTemp.data))
  36. chrome.tabs.create({url: dataTemp.url})
  37. } else {
  38. chrome.notifications.create(null, {
  39. type: 'basic',
  40. iconUrl: 'img/48.png',
  41. title: '插件提示',
  42. message: unescape(dataTemp.message)
  43. })
  44. }
  45. })
  46. }
  47. let userInfo = localStorage.getItem('userInfo')
  48. if (userInfo) {
  49. userInfo = JSON.parse(userInfo)
  50. document.getElementsByClassName('user')[0].innerHTML = `金币: ${userInfo.gold}`
  51. document.getElementsByClassName('login')[0].getElementsByClassName.display = 'none'
  52. }
  53. // 获取当前选项卡ID
  54. function getCurrentTabId(callback) {
  55. chrome.tabs.query({active: true, currentWindow: true}, function(tabs) {
  56. if(callback) callback(tabs.length ? tabs[0]: null);
  57. })
  58. }
  59. // 登录按钮登录
  60. document.getElementsByClassName('login')[0].onclick = function () {
  61. window.open(chrome.extension.getURL('options.html'))
  62. }
  63. window.onload = function() {
  64. // alert("页面加载完成!");
  65. // 获取是否有脚本
  66. getSchemeData.then((dataTemp) => {
  67. if (dataTemp.err !== 0) {
  68. buttonItem.classList.add('no-scheme')
  69. buttonItem.innerText = '此页面没有脚本'
  70. }
  71. })
  72. }