insert.js 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. const serverUrl = 'https://going.run/assistAll'
  2. // let tempData = localStorage.getItem('tempData')
  3. // if (tempData) {
  4. // tempData = JSON.parse(tempData)
  5. // }
  6. function addScr (data) {
  7. if (!document.body) {
  8. setTimeout(() => {
  9. console.info('尝试重新加载:' + data)
  10. addScr (data)
  11. }, 100);
  12. return
  13. }
  14. var script = document.createElement("script");
  15. script.type = "text/javascript";
  16. script.charset = "UTF-8";
  17. script.innerHTML = data;
  18. document.body.appendChild(script)
  19. }
  20. function loadJS( url, callback ){
  21. var script = document.createElement('script'),
  22. fn = callback || function(){};
  23. script.type = 'text/javascript';
  24. //IE
  25. if(script.readyState){
  26. script.onreadystatechange = function(){
  27. if( script.readyState == 'loaded' || script.readyState == 'complete' ){
  28. script.onreadystatechange = null;
  29. fn();
  30. }
  31. };
  32. }else{
  33. //其他浏览器
  34. script.onload = function(){
  35. fn();
  36. };
  37. }
  38. script.src = url;
  39. document.getElementsByTagName('head')[0].appendChild(script);
  40. }
  41. function loadCSS (url) {
  42. var headObj = document.getElementsByTagName('head')[0];
  43. var cssObj = document.createElement('link');
  44. cssObj.rel = 'stylesheet';
  45. cssObj.href = url;
  46. headObj.appendChild(cssObj);
  47. }
  48. // 判断是否有永久的加载数据
  49. if (localStorage.getItem('owoLoadData')) {
  50. const element = JSON.parse(localStorage.getItem('owoLoadData'))
  51. let urlStr = window.location.href
  52. if (new RegExp(element.url).test(urlStr)) {
  53. if (element.script) {
  54. element.script.forEach(element => {
  55. loadJS(element)
  56. });
  57. }
  58. if (element.style) {
  59. element.style.forEach(element => {
  60. loadCSS(element)
  61. });
  62. }
  63. setTimeout(() => {
  64. if (element.data) addScr(element.data)
  65. }, 0);
  66. }
  67. } else {
  68. // 尝试网络加载
  69. chrome.runtime.sendMessage({name:"getData", url: window.location.href},function(dataTemp){
  70. // console.log(dataTemp)
  71. if (!dataTemp) return
  72. let urlStr = window.location.href
  73. dataTemp.forEach(element => {
  74. if (new RegExp(element.url).test(urlStr)) {
  75. if (element.script) {
  76. JSON.parse(element.script).forEach(element => {
  77. loadJS(element)
  78. });
  79. }
  80. if (element.style) {
  81. JSON.parse(element.style).forEach(element => {
  82. loadCSS(element)
  83. });
  84. }
  85. setTimeout(() => {
  86. if (element.data) addScr(element.data)
  87. }, 0);
  88. return
  89. }
  90. })
  91. })
  92. }