insert.js 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  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. chrome.runtime.sendMessage({name:"getData", url: window.location.href},function(dataTemp){
  42. // console.log(dataTemp)
  43. if (!dataTemp) return
  44. let urlStr = window.location.href
  45. dataTemp.forEach(element => {
  46. if (new RegExp(element.url).test(urlStr)) {
  47. if (element.script) {
  48. JSON.parse(element.script).forEach(element => {
  49. console.log(`load: ${element}`)
  50. loadJS(element)
  51. });
  52. }
  53. if (element.style) {
  54. JSON.parse(element.style).forEach(element => {
  55. loadCSS(element)
  56. });
  57. }
  58. setTimeout(() => {
  59. addScr(element.data)
  60. }, 0);
  61. return
  62. }
  63. })
  64. })