contentscript-jsonformat.js 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. /**
  2. * content_scripts中如果被检测到当前页面内容为json数据,则自动进行JSON格式化
  3. */
  4. baidu.csJsonFormat = (function(){
  5. "use strict";
  6. var _htmlFragment = [
  7. '<div class="mod-json mod-contentscript"><div class="rst-item">',
  8. '<div id="formatTips">本页JSON数据由FeHelper进行自动格式化,若有任何问题,点击这里提交 ',
  9. '<a href="http://www.baidufe.com/item/889639af23968ee688b9.html#comment" target="_blank">意见反馈</a></div>',
  10. '<div id="formattingMsg">',
  11. '<svg id="spinner" width="16" height="16" viewBox="0 0 300 300" xmlns="http://www.w3.org/2000/svg" version="1.1">',
  12. '<path d="M 150,0 a 150,150 0 0,1 106.066,256.066 l -35.355,-35.355 a -100,-100 0 0,0 -70.711,-170.711 z" fill="#3d7fe6"></path>',
  13. '</svg>加载中...',
  14. '</div>',
  15. '<div id="jfContent"></div>',
  16. '<pre id="jfContent_pre"></pre>',
  17. '</div></div>'
  18. ].join('');
  19. var _loadCss = function(){
  20. var fcpCss = chrome.extension.getURL('static/css/fe-jsonformat.css');
  21. jQuery('<link id="_fehelper_fcp_css_" href="' + fcpCss + '" rel="stylesheet" type="text/css" />').appendTo('head');
  22. };
  23. var _init = function(){
  24. $(function(){
  25. var source ;
  26. if($('body').children().length == 1) {
  27. source = $.trim($('body>pre').html()) ;
  28. }
  29. if(!source) {
  30. source = $.trim($('body').html())
  31. }
  32. if(!source) {
  33. return;
  34. }
  35. var jsonObj = null;
  36. try{
  37. jsonObj = new Function("return " + source)();
  38. }catch(ex){
  39. }
  40. if(jsonObj && typeof jsonObj == "object") {
  41. $('body').html(_htmlFragment);
  42. _loadCss();
  43. JsonFormatEntrance.clear();
  44. JsonFormatEntrance.format(source);
  45. }
  46. });
  47. };
  48. return {
  49. init : _init
  50. };
  51. })();
  52. baidu.csJsonFormat.init();