{"id":664,"date":"2009-02-19T10:02:45","date_gmt":"2009-02-19T02:02:45","guid":{"rendered":"http:\/\/fdream.net\/blog\/article\/664.aspx"},"modified":"2009-02-19T10:02:42","modified_gmt":"2009-02-19T02:02:42","slug":"Mootools%e5%b8%b8%e7%94%a8%e6%96%b9%e6%b3%95%e6%89%a9%e5%b1%95%ef%bc%88%e5%9b%9b%ef%bc%89","status":"publish","type":"post","link":"https:\/\/fdream.net\/blog\/article\/664","title":{"rendered":"Mootools\u5e38\u7528\u65b9\u6cd5\u6269\u5c55\uff08\u56db\uff09"},"content":{"rendered":"<p>\u7ee7\u7eedMootools\u5e38\u7528\u65b9\u6cd5\u6269\u5c55\uff0c\u8fd9\u6b21\u662fWindow\u7c7b\u4e0a\u7684\u6269\u5c55\uff0c\u4e5f\u5c31\u662f\u5168\u5c40\u51fd\u6570\u3002<\/p>\n<h3>\u65b9\u6cd5\uff1a$params<\/h3>\n<p>\u8bf4\u660e\uff1a\u83b7\u53d6\u9875\u9762URL\u53c2\u6570\u3002\u4f60\u53ef\u4ee5\u4f7f\u7528\u4efb\u4f55\u6307\u5b9a\u7684\u5206\u9694\u7b26\uff0c\u6bd4\u5982&#8217;#&#8217;\uff0c\u9ed8\u8ba4\u4e3a&#8217;#&#8217;\u3002<\/p>\n<p><pre lang=\"javascript\">\nWindow.implement({\n    $params: function(delimiter) {\n        \/\/\/&lt;summary&gt;\n        \/\/\/ \u83b7\u53d6\u9875\u9762URL\u7684\u53c2\u6570\uff0c\u8fd4\u56de\u5305\u542b\u53c2\u6570\u7684hash\u5bf9\u8c61\n        \/\/\/&lt;\/summary&gt;\n        \/\/\/&lt;param name=&quot;delimiter&quot; type=&quot;String&quot;&gt;\u53c2\u6570\u548cURL\u7684\u5206\u9694\u7b26\uff0c\u6bd4\u5982?\u6216\u8005#\uff0c\u9ed8\u8ba4\u4e3a#&lt;\/param&gt;\n        \/\/\/&lt;returns type=&quot;Hash&quot; \/&gt;\n        delimiter = (delimiter || '#').escapeRegExp();\n        var params = new Hash();\n        try {\n            var requestStr = (location.toString().match(new RegExp(delimiter + '(.+)$')) || [0, 0])[1];\n            if (requestStr) {\n                params = requestStr.toHash(true);\n            }\n        }\n        catch (e) {\n        }\n        return params;\n    }\n}\n<\/pre>\n<\/p>\n<h3>\u65b9\u6cd5\uff1a$dump<\/h3>\n<p>\u8bf4\u660e\uff1a\u7c7b\u4f3c\u4e8ePHP\u4e2d\u7684var_dump\u65b9\u6cd5\uff0c\u6253\u5370\u6307\u5b9a\u7684\u53d8\u91cf\u6216\u8005\u5bf9\u8c61\u7684\u5185\u5bb9\uff0c\u8fd4\u56de\u63cf\u8ff0\u53d8\u91cf\u5185\u5bb9\u7684\u5b57\u7b26\u4e32\u3002<\/p>\n<p><pre lang=\"javascript\">\nWindow.implement({\n    $dump: function(obj, options) {\n        \/\/\/&lt;summary&gt;\n        \/\/\/ \u6253\u5370\u4e00\u4e2a\u53d8\u91cf\u6216\u8005\u5bf9\u8c61\u7684\u5185\u5bb9\uff0c\u8fd4\u56de\u63cf\u8ff0\u53d8\u91cf\u5185\u5bb9\u7684\u5b57\u7b26\u4e32\n        \/\/\/&lt;\/summary&gt;\n        \/\/\/&lt;param name=&quot;obj&quot; type=&quot;Object&quot;&gt;\u8981\u6253\u5370\u7684\u53d8\u91cf&lt;\/param&gt;\n        \/\/\/&lt;param name=&quot;options&quot; type=&quot;Object&quot;&gt;\n        \/\/\/ \u9009\u9879\uff1a\n        \/\/\/   delimiter: \u53d8\u91cf\u63cf\u8ff0\u4e4b\u95f4\u7684\u5206\u9694\u7b26\uff0c\u9ed8\u8ba4\u4e3a\u201c, \u201d\uff1b\n        \/\/\/   showFunction: \u662f\u5426\u6253\u5370\u51fd\u6570\u5185\u5bb9\uff0c\u9ed8\u8ba4\u4e3afalse\uff1b\n        \/\/\/   showClass: \u662f\u5426\u6253\u5370\u7c7b\u7684\u6784\u9020\u51fd\u6570\uff0c\u9ed8\u8ba4\u4e3afalse\uff1b\n        \/\/\/   showArrayValue: \u662f\u5426\u6253\u5370\u6570\u7ec4\u5185\u5bb9\uff0c\u9ed8\u8ba4\u4e3atrue\uff1b\n        \/\/\/   sort: \u6392\u5e8f\u65b9\u5f0f\uff0c\u9ed8\u8ba4\u4e0d\u6392\u5e8f\uff0c\u53ef\u4ee5\u4e3aasc\uff08\u987a\u5e8f\uff09, desc\uff08\u9006\u5e8f\uff09\n        \/\/\/&lt;\/param&gt;\n        \/\/\/&lt;returns type=&quot;Hash&quot; \/&gt;\n        options = options || {};\n        var dlm = options.delimiter || ', ';\n        var rf = options.showFunction ? true : false;\n        var rc = options.showClass ? true : false;\n        var rav = options.showArrayValue === false ? false : true;\n        var st = options.sort ? options.sort : null;\n        var s = [];\n        switch ($type(obj)) {\n            case 'element':\n            case 'hash':\n            case 'native':\n            case 'object':\n            case 'window':\n                var v, ty;\n                for (var p in obj) {\n                    try {\n                        v = obj[p];\n                        ty = $type(v);\n\n                        if ('function' == ty &amp;&amp; !rf) {\n                            s.push(['[', p, '](', ty, ') =&gt; [function Function]'].join(''));\n                        }\n                        else if (('class' == ty || 'native' == ty) &amp;&amp; !rc) {\n                            s.push(['[', p, '](', ty, ') =&gt; [class Class]'].join(''));\n                        }\n                        else if ('string' == ty) {\n                            s.push(['[', p, '](', ty, ' ', v.length, ') =&gt; ', v].join(''));\n                        }\n                        else if ('array' == ty) {\n                            if (rav &amp;&amp; rf) {\n                                s.push(['[', p, '](', ty, ' ', v.length, ') =&gt; ', v].join(''));\n                            }\n                            else if (rav &amp;&amp; !rf) {\n                                var tv, tty, ta = [], len = v.length;\n                                for (var i = 0; i &lt; len; i++) {\n                                    if ('function' == $type(v[i])) {\n                                        ta.push('[function Function]');\n                                    }\n                                    else {\n                                        ta.push(v[i]);\n                                    }\n                                }\n                                s.push(['[', p, '](', ty, ' ', v.length, ') =&gt; ', ta].join(''));\n                            }\n                            else {\n                                s.push(['[', p, '](', ty, ' ', v.length, ') =&gt; [array Array]'].join(''));\n                            }\n                        }\n                        else {\n                            s.push(['[', p, '](', ty, ') =&gt; ', v].join(''));\n                        }\n                    }\n                    catch (e) {\n                        ty = 'unknow';\n                        v = '[Permission Denied]';\n                        s.push(['[', p, '](', ty, ') =&gt; ', v].join(''));\n                    }\n                }\n                break;\n            case 'array':\n                var l = obj.length;\n                var v, t;\n                for (var i = 0; i &lt; l; i++) {\n                    v = obj[i];\n                    t = $type(v);\n                    if ('function' == t &amp;&amp; !rf) {\n                        s.push(['[', i, '](', ty, ') =&gt; [function Function]'].join(''));\n                    }\n                    else {\n                        s.push(['[', i, '](', ty, ') =&gt; ', v].join(''));\n                    }\n                }\n                break;\n            case 'string':\n                s.push([$type(obj), ' ', obj.length, ' =&gt; ', obj].join(''));\n                break;\n            default:\n                s.push([$type(obj), ' =&gt; ', obj].join(''));\n                break;\n        }\n\n        if (st) {\n            return s.sortBy({ type: st }).join(dlm);\n        }\n\n        return s.join(dlm);\n    }\n});\n<\/pre><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u7ee7\u7eedMootools\u5e38\u7528\u65b9\u6cd5\u6269\u5c55\uff0c\u8fd9\u6b21\u662fWindow\u7c7b\u4e0a\u7684\u6269\u5c55\uff0c\u4e5f\u5c31\u662f\u5168\u5c40\u51fd\u6570\u3002 \u65b9\u6cd5\uff1a$params \u8bf4\u660e\uff1a\u83b7\u53d6\u9875\u9762URL\u53c2\u6570\u3002\u4f60\u53ef\u4ee5\u4f7f\u7528\u4efb\u4f55\u6307\u5b9a\u7684\u5206\u9694\u7b26\uff0c\u6bd4\u5982&#8217;#&#8217;\uff0c\u9ed8\u8ba4\u4e3a&#8217;#&#8217;\u3002 Window.implement({ $params: function(delimiter) { \/\/\/&lt;summary&gt; \/\/\/ \u83b7\u53d6\u9875\u9762URL\u7684\u53c2\u6570\uff0c\u8fd4\u56de\u5305\u542b\u53c2\u6570\u7684hash\u5bf9\u8c61 \/\/\/&lt;\/summary&gt; \/\/\/&lt;param name=&quot;delimiter&quot; type=&quot;String&quot;&gt;\u53c2\u6570\u548cURL\u7684\u5206\u9694\u7b26\uff0c\u6bd4\u5982?\u6216\u8005#\uff0c\u9ed8\u8ba4\u4e3a#&lt;\/param&gt; \/\/\/&lt;returns type=&quot;Hash&quot; \/&gt; delimiter = (delimiter || &#8216;#&#8217;).escapeRegExp(); var params = new Hash(); try { var requestStr = (location.toString().match(new RegExp(delimiter + &#8216;(.+)$&#8217;)) || [0, 0])[1]; if (requestStr) { params = requestStr.toHash(true); } } catch (e) { } return params; } } &hellip; <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[120,104,328],"class_list":["post-664","post","type-post","status-publish","format-standard","hentry","category-coding","tag-AJAX","tag-JavaScript","tag-mootools"],"views":6891,"_links":{"self":[{"href":"https:\/\/fdream.net\/blog\/wp-json\/wp\/v2\/posts\/664","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fdream.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fdream.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fdream.net\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fdream.net\/blog\/wp-json\/wp\/v2\/comments?post=664"}],"version-history":[{"count":0,"href":"https:\/\/fdream.net\/blog\/wp-json\/wp\/v2\/posts\/664\/revisions"}],"wp:attachment":[{"href":"https:\/\/fdream.net\/blog\/wp-json\/wp\/v2\/media?parent=664"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fdream.net\/blog\/wp-json\/wp\/v2\/categories?post=664"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fdream.net\/blog\/wp-json\/wp\/v2\/tags?post=664"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}