Browse Source

json bug fix

Alien 11 years ago
parent
commit
0da7ee457f

+ 1 - 1
chrome/manifest.json

@@ -1,6 +1,6 @@
 { 
 	"name": "WEB前端助手(FeHelper)", 
-	"version": "4.3",
+	"version": "4.4",
     "manifest_version": 2,
 	 
 	"default_locale": "zh_CN", 

+ 1 - 1
chrome/online.manifest.json

@@ -1,6 +1,6 @@
 {
     "name": "WEB前端助手(FeHelper)",
-    "version": "4.3",
+    "version": "4.4",
     "manifest_version": 2,
 
     "default_locale": "zh_CN",

+ 10 - 1
chrome/static/js/jsonformat/contentscript-jsonformat.js

@@ -28,6 +28,12 @@ baidu.csJsonFormat = (function () {
         jQuery('<link id="_fehelper_fcp_css_" href="' + fcpCss + '" rel="stylesheet" type="text/css" />').appendTo('head');
     };
 
+    var _unEscapeHTML = function(txt) {
+        return txt.replace(/&amp;/g,'&').replace(/&gt;/g,'>')
+            .replace(/&lt;/g,'<').replace(/&quot;/g,'"')
+            .replace(/&#39;/g,"'");
+    };
+
     /**
      * 从页面提取JSON文本
      * @return {*}
@@ -41,6 +47,8 @@ baidu.csJsonFormat = (function () {
         if (!source) {
             return;
         }
+        // jQuery的html方法是把内容编码后输出的,所以需要反解回去
+        source = _unEscapeHTML(source);
 
         // 如果body的内容还包含HTML标签,肯定不是合法的json了
         // 如果是合法的json,也只可能有一个text节点
@@ -56,7 +64,7 @@ baidu.csJsonFormat = (function () {
                 }
             } else if (nodes[i].nodeType == Node.ELEMENT_NODE) {
                 var tagName = nodes[i].tagName.toLowerCase();
-                var html = $.trim($(nodes[i]).html());
+                var html = $.trim(_unEscapeHTML($(nodes[i]).html()));
                 // 如果是pre标签,则看内容是不是和source一样,一样则continue
                 if(tagName === 'pre' && html  === source) {
                     continue;
@@ -127,6 +135,7 @@ baidu.csJsonFormat = (function () {
 
             $('body').html(_htmlFragment);
             _loadCss();
+
             JsonFormatEntrance.clear();
             JsonFormatEntrance.format(source);
 

+ 1 - 2
chrome/static/js/jsonformat/json-format-dealer.js

@@ -243,8 +243,7 @@ var JsonFormatDealer = (function () {
           case TYPE_STRING:
             // If string is a URL, get a link, otherwise get a span
               var innerStringEl = baseSpan.cloneNode(false),
-                  escapedString = JSON.stringify(value)
-              ;
+                  escapedString = JSON.stringify(value) ;
               escapedString = escapedString.substring(1, escapedString.length-1) ; // remove quotes
               if (value[0] === 'h' && value.substring(0, 4) === 'http') { // crude but fast - some false positives, but rare, and UX doesn't suffer terribly from them.
                 var innerStringA = document.createElement('A') ;

+ 1 - 0
chrome/static/js/jsonformat/json-format-ent.js

@@ -277,6 +277,7 @@ var JsonFormatEntrance = (function() {
    * @return {[type]}
    */
   var format = function(jsonStr){
+
     // Send the contents of the PRE to the BG script
     // Add jfContent DIV, ready to display stuff
       jfContent = document.getElementById('jfContent');

+ 4 - 3
chrome/static/js/timestamp/timestamp.js

@@ -17,7 +17,7 @@ var Timestamp = (function(){
                 alert('请输入合法的Unix时间戳');
                 return;
             }
-            $('#txtDesDate').val((new Date(stamp * 1000)).toLocaleString());
+            $('#txtDesDate').val((new Date(parseInt(stamp,10))).toLocaleString());
         });
 
         $('#btnLocaleToStamp').click(function(e) {
@@ -37,7 +37,8 @@ var Timestamp = (function(){
                 alert('请输入合法的时间!');
                 return;
             }
-            $('#txtDesStamp').val((new Date(Date.UTC(year,month,day,hour,minute,second))).getTime() / 1000);
+            var dateString = year + '-' + month + '-' + day + ' ' + hour + ':' + minute + ':' + second;
+            $('#txtDesStamp').val(Date.parse(dateString));
         });
 	};
 
@@ -46,7 +47,7 @@ var Timestamp = (function(){
         var txtNowStamp = $('#txtNow');
         window.setInterval(function(){
             txtNowDate.val((new Date()).toLocaleString());
-            txtNowStamp.val(Math.round((new Date()).getTime() / 1000));
+            txtNowStamp.val(Math.round((new Date()).getTime()));
         },1000);
     };
 

+ 1 - 1
chrome/template/fehelper_popup.html

@@ -1 +1 @@
-<!DOCTYPE HTML>
<html lang="zh-CN">
    <head>
        <title>FeHelper弹出页面</title>
        <meta charset="utf-8">
		<link rel="stylesheet" href="../static/css/fe-popup.css" />
		<script type="text/javascript" src="../static/js/core/jquery-1.5.min.js"></script>
		<script type="text/javascript" src="../static/js/mod/mod_popup.js"></script>
    </head>
    <body>
    	<div class="fe-function-title">FE助手</div>
    	<ul class="fe-function-list">
            <li class="-x-endecode" data-msgtype="EN_DECODE" data-usefile="1">
                <b></b><span>字符串编解码</span></li>
            <li class="-x-timestamp" data-msgtype="TIME_STAMP" data-usefile="1">
                <b></b><span>时间(戳)转换</span></li>
            <li class="-x-codebeautify" data-msgtype="CODE_BEAUTIFY" data-usefile="1">
                <b></b><span>代码美化工具</span></li>
            <li class="-x-jsonformat" data-msgtype="JSON_FORMAT" data-usefile="1">
                <b></b><span>Json串格式化</span></li>
            <li class="-x-regexp" data-msgtype="REGEXP_TOOL" data-usefile="1">
                <b></b><span>Js正则表达式</span></li>
            <li class="-x-qrcode" data-msgtype="QR_CODE" data-usefile="1">
                <b></b><span>二维码生成器</span></li>
    		<li class="-x-fcp" data-msgtype="FCP_HELPER_DETECT">
                <b></b><span>编码规范检测</span></li>
            <li class="-x-loadtime" data-msgtype="SHOW_PAGE_LOAD_TIME">
                <b></b><span>页面性能检测</span></li>
    		<li class="-x-grid" data-msgtype="GRID_DETECT">
                <b></b><span>栅格规范检测</span></li>
            <li class="-x-tracker" data-msgtype="JS_TRACKER">
                <b></b><span>Js覆盖面检测</span></li>
    	</ul>
        <div class="fe-feedback">
            <a href="http://www.baidufe.com/item/889639af23968ee688b9.html#comment" target="_blank" tabindex="-1">意见反馈</a>
        </div>
    </body>
</html>
+<!DOCTYPE HTML>
<html lang="zh-CN">
    <head>
        <title>FeHelper弹出页面</title>
        <meta charset="utf-8">
		<link rel="stylesheet" href="../static/css/fe-popup.css" />
		<script type="text/javascript" src="../static/js/core/jquery-1.5.min.js"></script>
		<script type="text/javascript" src="../static/js/mod/mod_popup.js"></script>
    </head>
    <body>
    	<div class="fe-function-title">FE助手</div>
    	<ul class="fe-function-list">
            <li class="-x-endecode" data-msgtype="EN_DECODE" data-usefile="1">
                <b></b><span>字符串编解码</span></li>
            <li class="-x-codebeautify" data-msgtype="CODE_BEAUTIFY" data-usefile="1">
                <b></b><span>代码美化工具</span></li>
            <li class="-x-jsonformat" data-msgtype="JSON_FORMAT" data-usefile="1">
                <b></b><span>Json串格式化</span></li>
            <li class="-x-regexp" data-msgtype="REGEXP_TOOL" data-usefile="1">
                <b></b><span>Js正则表达式</span></li>
            <li class="-x-timestamp" data-msgtype="TIME_STAMP" data-usefile="1">
                <b></b><span>时间(戳)转换</span></li>
            <li class="-x-qrcode" data-msgtype="QR_CODE" data-usefile="1">
                <b></b><span>二维码生成器</span></li>
    		<li class="-x-fcp" data-msgtype="FCP_HELPER_DETECT">
                <b></b><span>编码规范检测</span></li>
            <li class="-x-loadtime" data-msgtype="SHOW_PAGE_LOAD_TIME">
                <b></b><span>页面性能检测</span></li>
    		<li class="-x-grid" data-msgtype="GRID_DETECT">
                <b></b><span>栅格规范检测</span></li>
            <li class="-x-tracker" data-msgtype="JS_TRACKER">
                <b></b><span>Js覆盖面检测</span></li>
    	</ul>
        <div class="fe-feedback">
            <a href="http://www.baidufe.com/item/889639af23968ee688b9.html#comment" target="_blank" tabindex="-1">意见反馈</a>
        </div>
    </body>
</html>