1
0

network.js 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. /**
  2. * 后端网络处理,ajax等
  3. * @author zhaoxianlie
  4. */
  5. module.exports = (() => {
  6. /**
  7. * 通过这个方法来读取服务器端的CSS文件内容,要这样做,前提是在manifest.json中配置permissions为:http://
  8. * @param {String} link 需要读取的css文件
  9. * @param {Function} callback 回调方法,格式为:function(respData){}
  10. * @config {Object} respData 输出到客户端的内容,格式为{success:BooleanValue,content:StringValue}
  11. * @return {Undefined} 无返回值
  12. */
  13. let _readFileContent = function (link, callback) {
  14. //创建XMLHttpRequest对象,用原生的AJAX方式读取内容
  15. let xhr = new XMLHttpRequest();
  16. //处理细节
  17. xhr.onreadystatechange = function () {
  18. //后端已经处理完成,并已将请求response回来了
  19. if (xhr.readyState === 4) {
  20. //输出到客户端的内容,格式为{success:BooleanValue,content:StringValue}
  21. let respData;
  22. //判断status是否为OK
  23. if (xhr.status === 200 && xhr.responseText) {
  24. //OK时回送给客户端的内容
  25. respData = {
  26. success: true, //成功
  27. path: link, //文件路径
  28. content: xhr.responseText //文件内容
  29. };
  30. } else { //失败
  31. respData = {
  32. success: false, //失败
  33. path: link, //文件路径
  34. content: "FcpHelper can't load such file." //失败信息
  35. };
  36. }
  37. //触发回调,并将结果回送
  38. callback(respData);
  39. }
  40. };
  41. //打开读通道
  42. xhr.open('GET', link, true);
  43. //设置HTTP-HEADER
  44. xhr.setRequestHeader("Content-Type", "text/plain;charset=UTF-8");
  45. xhr.setRequestHeader("Access-Control-Allow-Origin", "*");
  46. //开始进行数据读取
  47. xhr.send();
  48. };
  49. /**
  50. * 从cookie中获取url
  51. * @param {Object} cookie
  52. */
  53. let _urlFromCookie = function (cookie) {
  54. return "http" + (cookie.secure ? "s" : "") + "://" + cookie.domain + cookie.path;
  55. };
  56. /**
  57. * 获取页面上的所有cookie
  58. * @param {Object} callback
  59. */
  60. let _getCookies = function (request, callback) {
  61. let arrCookies = [];
  62. chrome.cookies.getAll({}, function (cookies) {
  63. for (let i = 0, le = cookies.length; i < le; i++) {
  64. if (request.url.indexOf(cookies[i].domain.substring(1)) > -1) {
  65. cookies[i].url = _urlFromCookie(cookies[i]);
  66. arrCookies.push(cookies[i]);
  67. }
  68. }
  69. //排序
  70. cookies.sort(function (a, b) {
  71. return a.domain.localeCompare(b.domain);
  72. });
  73. callback.call(null, {
  74. cookie: arrCookies
  75. });
  76. });
  77. };
  78. /**
  79. * 移除某个cookie
  80. * @param {Object} request
  81. * @param {Object} callback
  82. */
  83. let _removeCookie = function (request, callback) {
  84. chrome.cookies.getAll({}, function (cookies) {
  85. for (let i = 0, le = cookies.length; i < le; i++) {
  86. let url = _urlFromCookie(cookies[i]);
  87. let name = cookies[i].name;
  88. if (url == request.url && name == request.name) {
  89. chrome.cookies.remove({"url": url, "name": name});
  90. if (callback && typeof callback == "function") {
  91. callback.call(null);
  92. }
  93. return;
  94. }
  95. }
  96. });
  97. };
  98. /**
  99. * 设置某个cookie
  100. * @param {Object} request
  101. * @param {Object} callback
  102. */
  103. let _setCookie = function (request, callback) {
  104. chrome.cookies.getAll({}, function (cookies) {
  105. for (let i = 0, le = cookies.length; i < le; i++) {
  106. let url = _urlFromCookie(cookies[i]);
  107. let name = cookies[i].name;
  108. if (url == request.url && name == request.name) {
  109. chrome.cookies.set(request);
  110. if (callback && typeof callback == "function") {
  111. callback.call(null);
  112. }
  113. return;
  114. }
  115. }
  116. });
  117. };
  118. return {
  119. readFileContent: _readFileContent,
  120. getCookies: _getCookies,
  121. removeCookie: _removeCookie,
  122. setCookie: _setCookie
  123. };
  124. })();