insert.js 2.4 KB

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