/** * content_scripts中如果被检测到当前页面内容为json数据,则自动进行JSON格式化 */ baidu.csJsonFormat = (function(){ "use strict"; var _htmlFragment = [ '
', '
本页JSON数据由FeHelper进行自动格式化,若有任何问题,点击这里提交 ', '意见反馈', '  或者  禁用此功能', '
', '
', '', '', '加载中...', '
', '
', '
',
        '
' ].join(''); var _loadCss = function(){ var fcpCss = chrome.extension.getURL('static/css/fe-jsonformat.css'); jQuery('').appendTo('head'); }; var _format = function(){ var source ; if($('body').children().length == 1) { source = $.trim($('body>pre').html()) ; } if(!source) { source = $.trim($('body').html()) } if(!source) { return; } var jsonObj = null; try{ jsonObj = new Function("return " + source)(); // 还要防止下面这种情况: "{\"ret\":\"0\", \"msg\":\"ok\"}" if(typeof jsonObj == "string") { // 再来一次 jsonObj = new Function("return " + jsonObj)(); } if(typeof jsonObj == "object") { $('body').html(_htmlFragment); _loadCss(); JsonFormatEntrance.clear(); // 要尽量保证格式化的东西一定是一个json,所以需要把内容进行JSON.stringify处理 source = JSON.stringify(jsonObj); JsonFormatEntrance.format(source); // 允许禁用 $('#makeAutoJsonFormatOff').click(function(e){ baidu.feOption.setOptions({ "opt_item_autojson" : 'false' }); alert("以后可以从FeHelper的选项页面中重新开启"); window.location.reload(true); }); } }catch(ex){ return; } }; var _init = function(){ $(function(){ baidu.feOption.getOptions(["opt_item_autojson"],function(opts){ if(opts["opt_item_autojson"] != 'false') { _format(); } }); }); }; return { init : _init }; })(); baidu.csJsonFormat.init();