123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138 |
- /**
- * 注册命名空间:baidu.network
- */
- baidu.namespace.register("baidu.network");
- /**
- * 后端网络处理,ajax等
- * @author zhaoxianlie
- */
- baidu.network = (function(){
- /**
- * 通过这个方法来读取服务器端的CSS文件内容,要这样做,前提是在manifest.json中配置permissions为:http://
- * @param {String} link 需要读取的css文件
- * @param {Function} callback 回调方法,格式为:function(respData){}
- * @config {Object} respData 输出到客户端的内容,格式为{success:BooleanValue,content:StringValue}
- * @return {Undefined} 无返回值
- */
- var _readFileContent = function(link,callback){
- //创建XMLHttpRequest对象,用原生的AJAX方式读取内容
- var xhr = new XMLHttpRequest();
- //处理细节
- xhr.onreadystatechange = function() {
- //后端已经处理完成,并已将请求response回来了
- if (xhr.readyState === 4) {
- //输出到客户端的内容,格式为{success:BooleanValue,content:StringValue}
- var respData;
- //判断status是否为OK
- if (xhr.status === 200 && xhr.responseText) {
- //OK时回送给客户端的内容
- respData = {
- success : true, //成功
- type : FILE.LINK, //<link>标签
- path : link, //文件路径
- content : xhr.responseText //文件内容
- };
- } else { //失败
- respData = {
- success : false, //失败
- type : FILE.LINK, //<link>标签
- path : link, //文件路径
- content : "FcpHelper can't load such file." //失败信息
- };
- }
- //触发回调,并将结果回送
- callback(respData);
- }
- };
- //打开读通道
- xhr.open('GET', link, true);
- //设置HTTP-HEADER
- xhr.setRequestHeader("Content-Type","text/plain;charset=UTF-8");
- xhr.setRequestHeader("Access-Control-Allow-Origin","*");
- //开始进行数据读取
- xhr.send();
- };
-
- /**
- * 从cookie中获取url
- * @param {Object} cookie
- */
- var _urlFromCookie = function(cookie){
- return "http" + (cookie.secure ? "s" : "") + "://" + cookie.domain + cookie.path;
- };
- /**
- * 获取页面上的所有cookie
- * @param {Object} callback
- */
- var _getCookies = function(request,callback){
- var arrCookies = [];
- chrome.cookies.getAll({}, function(cookies){
- for(var i=0,le=cookies.length;i<le;i++){
- if(request.url.indexOf(cookies[i].domain.substring(1)) > -1) {
- cookies[i].url = _urlFromCookie(cookies[i]);
- arrCookies.push(cookies[i]);
- }
- }
-
- //排序
- cookies.sort(function (a, b) { return a.domain.localeCompare(b.domain); });
-
- callback.call(null,{
- cookie : arrCookies
- });
- });
- };
-
- /**
- * 移除某个cookie
- * @param {Object} request
- * @param {Object} callback
- */
- var _removeCookie = function(request,callback){
- chrome.cookies.getAll({}, function(cookies){
- for(var i=0,le=cookies.length;i<le;i++){
- var url = _urlFromCookie(cookies[i]);
- var name = cookies[i].name;
- if(url == request.url && name == request.name) {
- chrome.cookies.remove({"url": url, "name": name});
- if(callback && typeof callback == "function") {
- callback.call(null);
- }
- return;
- }
- }
- });
- };
-
- /**
- * 设置某个cookie
- * @param {Object} request
- * @param {Object} callback
- */
- var _setCookie = function(request,callback){
- chrome.cookies.getAll({}, function(cookies){
- for(var i=0,le=cookies.length;i<le;i++){
- var url = _urlFromCookie(cookies[i]);
- var name = cookies[i].name;
- if(url == request.url && name == request.name) {
- chrome.cookies.set(request);
- if(callback && typeof callback == "function") {
- callback.call(null);
- }
- return;
- }
- }
- });
- };
-
- return {
- readFileContent : _readFileContent,
- getCookies : _getCookies,
- removeCookie : _removeCookie,
- setCookie : _setCookie
- };
- })();
|