{"@attributes":{"version":"2.0"},"channel":{"title":"Javascript on \u9694\u53f6\u9ec4\u83ba Yanbin's Blog - \u8f6f\u4ef6\u7f16\u7a0b\u5b9e\u8df5","link":"https:\/\/yanbin.blog\/tags\/javascript\/","description":"Recent content in Javascript on \u9694\u53f6\u9ec4\u83ba Yanbin's Blog - \u8f6f\u4ef6\u7f16\u7a0b\u5b9e\u8df5","generator":"Hugo -- gohugo.io","language":"en-us","managingEditor":"yabqiu@gmail.com (Yanbin Qiu)","webMaster":"yabqiu@gmail.com (Yanbin Qiu)","copyright":"Yanbin \u9694\u53f6\u9ec4\u83ba","lastBuildDate":"Thu, 24 Apr 2014 01:53:10 -0500","item":[{"title":"AngularJS HelloWorld","link":"https:\/\/yanbin.blog\/angularjs-helloworld\/","pubDate":"Thu, 24 Apr 2014 01:53:10 -0500","author":"yabqiu@gmail.com (Yanbin Qiu)","guid":"https:\/\/yanbin.blog\/angularjs-helloworld\/","description":"\n\u7ecf\u5386\u8fc7\u4e00\u4e2a\u4f7f\u7528 <a href=\"http:\/\/backbonejs.org\/\" target=\"_blank\" rel=\"noopener\">Backbone.js<\/a> \u7684\u9879\u76ee\uff0c\u628a Backbone.js \u4e5f\u5f04\u5f97\u4e03\u4e03\u516b\u516b\u4e86\uff0c\u5173\u952e\u662f\u5b83\u6bd4\u8f83\u5bb9\u6613\u7406\u89e3\u3002\u6700\u8fd1\u63a5\u89e6\u4e00\u4e2a\u4f7f\u7528\u4e86 <a href=\"https:\/\/angularjs.org\/\" target=\"_blank\" rel=\"noopener\">AngularJS<\/a> \u7684\u9879\u76ee\uff0c\u4e4d\u4e00\u770b\u90a3\u53ef\u662f\u4e24\u5934\u96fe\u6c34\uff0c\u5b83\u662f\u4e00\u4e2a MVW(Model - View - Whatever) \u578b\u7684 Javascript \u6846\u67b6\u3002\u5b83\u4e0e Backbone.js \u76f8\u6bd4\u95e8\u69db\u5c31\u8981\u9ad8\u4e9b\u4e86\uff0c\u6211\u7684\u7b2c\u4e00\u611f\u89c9\u3002\u4e00\u822c\u90fd\u8bf4 MVC\uff0cAngularJS \u5f15\u5165\u4e2a W(Whatever) \u6982\u5ff5\u6765\u610f\u5473\u5c31\u66f4\u6df1\u8fdc\u4e86\u3002<\/p>\n<br\/>\nAngularJS \u629b\u5374\u4e86\u4f20\u7edf\u7684 Javascript \u7684\u64cd\u4f5c\u7406\u5ff5\uff0c\u4e0d\u518d\u662f Dom \u4e0a\u7ed1\u5b9a\u4e8b\u4ef6\uff0c\u89e6\u53d1\u4e8b\u4ef6\uff0c\u64cd\u4f5c Dom \u8fd9\u6837\u7684\u601d\u7ef4\u3002\u5b83\u5728 HTML \u4ee3\u7801\u4e2d\u7684\u8868\u73b0\u5c31\u662f\u90a3\u4e9b ng-* \u5c5e\u6027\uff0c\u4ee5\u53ca {{...}} \u62ec\u8d77\u6765\u7684 AngularJS \u8868\u8fbe\u5f0f\u3002\u4e00\u4e2a\u7b80\u5355\u7684\u64cd\u4f5c\u751a\u81f3\u4e0d\u9700\u8981\u5199\u4e00\u884c Javascript \u4ee3\u7801\uff0c\u5728 AngularJS \u7684\u9996\u9875\u5c31\u6709\u51e0\u4e2a\u57fa\u672c\u7684\u4f8b\u5b50\uff0c\u6211\u4f53\u9a8c\u4e86\u7c7b\u4f3c\u7b2c\u4e00\u4e2a\u4f8b\u5b50\uff0c\u5927\u6982\u662f\u8fd9\u6837\u5b50\u7684"},{"title":"Grunt - \u57fa\u4e8e node.js \u6784\u5efa\u5de5\u5177\u4e4b\u521d\u4f53\u9a8c","link":"https:\/\/yanbin.blog\/grunt-nodejs-based-build-tool\/","pubDate":"Mon, 31 Mar 2014 03:04:17 -0500","author":"yabqiu@gmail.com (Yanbin Qiu)","guid":"https:\/\/yanbin.blog\/grunt-nodejs-based-build-tool\/","description":"\n\u81ea\u52a8\u5316\u6784\u5efa\u5de5\u5177\u771f\u662f\u7f2d\u4e71\u7eb7\u5448\uff0c\u6700\u65e9\u7684 make, nmake, \u5230 Ant, NAnt, \u8fdb\u5316\u5230\u9762\u5411\u5bf9\u8c61\u7684 Maven, Gradle\uff0c\u7531 Scala \u800c\u8d77\u7684 SBT, SBuild\uff0c\u518d\u5c31\u662f\u4eca\u5929\u8981\u8bf4\u7684\u7531 node.js \u5efa\u7acb\u8d77\u7684\u751f\u6001\n<a href=\"http:\/\/gruntjs.com\" target=\"_blank\">Grunt<\/a>\u3002\nGrunt \u53ef\u4ee5\u505a\u4ec0\u4e48\u5462\uff0c\u7406\u8bba\u4e0a\u53ea\u8981\u6709\u76f8\u5e94\u7684<a href=\"http:\/\/gruntjs.com\/plugins\" target=\"_blank\">\u63d2\u4ef6<\/a>\u652f\u6301\uff0c\u5b83\u53ef\u4ee5\u5e94\u5bf9\u4efb\u4f55\u6784\u5efa\u4efb\u52a1\uff0c\u4f46\u5b83\u66f4\u4e3a\u6709\u529b\u7684\u8868\u73b0\u662f\u5728\u524d\u7aef\u65b9\u9762\u3002<br\/>\n<br\/>\nGrunt \u662f\u8fd0\u884c\u5728 node.js \u73af\u5883\uff0c\u7531 npm \u6765\u5b89\u88c5\uff0c\u6240\u4ee5\u9996\u5148\u8981\u5b89\u88c5 node.js, npm, \u5b83\u4eec\u4fe9\u7684\u5b89\u88c5\u4e0d\u591a\u8bf4\uff0c\u6211\u8fd9\u91cc\u7684\u7248\u672c\u5206\u522b\u662f\uff1a<br\/>\n<blockquote>\nunmi@localhost ~&gt; node --version<br\/>\nv0.10.24<br\/>\nunmi@localhost ~&gt; npm --version<br\/>\n1.3.21\n<\/blockquote>\n\u8fd0\u884c Grunt \u8fd8\u8981\u5b89\u88c5 grunt-cli, \u4f7f\u7528\u547d\u4ee4 npm install -g grunt-cli\uff0c\u5b89\u88c5\u540e\u6211\u673a\u5668\u4e0a Grunt \u7684\u7248\u672c\u662f"},{"title":"Backbone.js \u4f7f\u7528 Collection","link":"https:\/\/yanbin.blog\/backbone-js-with-collection\/","pubDate":"Thu, 09 Jan 2014 03:39:42 -0600","author":"yabqiu@gmail.com (Yanbin Qiu)","guid":"https:\/\/yanbin.blog\/backbone-js-with-collection\/","description":"\n\u5728\u524d\u9762\u6211\u4eec\u7684 Backbone.js \u7528\u4e0a\u4e86 Model, \u4f46\u7edd\u5927\u6570\u7684\u60c5\u51b5\u4e0b\u6211\u4eec\u5904\u7406\u7684\u90fd\u662f\u4e00\u6279\u7684 Model \u6570\u636e\u5217\u8868\uff0c\u6240\u4ee5\u9700\u8981\u6709\u4e00\u4e2a Collection \u6765\u5bb9\u7eb3 Model, \u5c31\u50cf Java \u91cc\u6700\u5e38\u7528\u7684 List\u3002<\/p>\n<br\/>\n\u58f0\u660e Collection \u65f6\u9700\u8981\u6307\u5b9a\u4ed6\u5904\u7406\u7684 Model \u7c7b\u578b\uff0c\u4e5f\u5c31\u662f\u4e2a\u6cdb\u578b\u53c2\u6570\uff0c\u5982\u6211\u4eec\u8fd9\u6837\u5b9a\u4e49 Collection:<br\/>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-js\" data-lang=\"js\"><span class=\"line\"><span class=\"ln\">1<\/span><span class=\"cl\"><span class=\"c1\">\/\/define Collection\n<\/span><\/span><\/span><span class=\"line\"><span class=\"ln\">2<\/span><span class=\"cl\"><span class=\"kd\">var<\/span> <span class=\"nx\">PeopleCollection<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">Backbone<\/span><span class=\"p\">.<\/span><span class=\"nx\">Collection<\/span><span class=\"p\">.<\/span><span class=\"nx\">extend<\/span><span class=\"p\">({<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"ln\">3<\/span><span class=\"cl\"> <span class=\"nx\">model<\/span><span class=\"o\">:<\/span> <span class=\"nx\">Person<\/span> <span class=\"c1\">\/\/like generic\n<\/span><\/span><\/span><span class=\"line\"><span class=\"ln\">4<\/span><span class=\"cl\"><span class=\"p\">});<\/span><\/span><\/span><\/code><\/pre><\/div>\n<br\/>\n\u7136\u540e\u5c31\u662f\u5f80 Collection \u4e2d\u5982\u4f55\u586b\u5145 Model \u5b9e\u4f8b\uff0c\u6709\u597d\u591a\u79cd\uff0c\u8fd9\u91cc\u53ea\u6f14\u793a\u6700\u76f4\u63a5\u7684\u65b9\u5f0f\u3002\u8fd8 add, fetch, \u53ca\u5bf9 Collection \u6392\u5e8f, \u904d\u5386\u7b49\u5404\u79cd\u64cd\u4f5c\u3002"},{"title":"Backbone.js \u4e2d\u4f7f\u7528 Model","link":"https:\/\/yanbin.blog\/backbone-js-with-model\/","pubDate":"Mon, 06 Jan 2014 17:13:59 -0600","author":"yabqiu@gmail.com (Yanbin Qiu)","guid":"https:\/\/yanbin.blog\/backbone-js-with-model\/","description":"\n\u524d\u9762\u51e0\u7bc7 Backbone.js \u7684\u4f8b\u5b50\u4e2d\u6709\u4f7f\u7528\u5230 template, \u53ca\u6570\u636e\u7684\u586b\u5145\uff0c\u5176\u5b9e\u8fd9\u5df2\u7ecf\u5f88\u63a5\u8fd1 Model \u4e86\u3002\u73b0\u5728\u6765\u5b66\u4e60\u600e\u4e48\u521b\u5efa\u81ea\u5df1\u7684 Model \u7c7b\uff0c\u5e76\u7b80\u5355\u7684\u4f7f\u7528\u3002Backbone.js \u4e2d Model \u4f1a\u6d89\u53ca\u5230\u5f88\u591a\u7684\u6982\u5ff5\uff0c\u5982 Model \u7684\u521d\u59cb\u5316\uff0c\u9ed8\u8ba4\u503c\uff0c\u5c5e\u6027\u7684\u8bfb\u5199\uff0c\u5c5e\u6027\u503c\u6539\u53d8\u7684\u76d1\u542c\uff0c\u6570\u636e\u6e32\u67d3\uff0c\u6821\u9a8c\uff0c\u4ee5\u53ca\u4e0e\u670d\u52a1\u7aef\u7684\u6570\u636e\u540c\u6b65\u7b49\u3002<\/p>\n<br\/>\n\u672c\u6587\u4e0d\u6253\u7b97\u8bb2\u524d\u9762\u5927\u90e8\u5206\u7684\u5185\u5bb9\uff0c\u6700\u521d\u601d\u8003\u7684\u4e00\u4e2a\u8109\u7edc\u662f\u600e\u4e48\u628a Model \u5f15\u5165\u8fdb\u6765\uff0c\u6240\u4ee5\u7ebf\u7d22\u4f1a\u662f <code>\u5efa\u7acb Model \u7c7b -&gt; \u521d\u59cb\u5316 Model \u5b9e\u4f8b -&gt; \u8bbe\u7f6e\u503c -&gt; \u6e32\u67d3\u5230\u9875\u9762<\/code>\uff0c\u5176\u4f59 Model \u7279\u6027\u5206\u522b\u518d\u6df1\u5165\u3002<br\/><br\/>\n\u76f4\u89c2\u5730\u80fd\u60f3\u5230\u7684 JavaScript \u7684 Model \u662f\u4e00\u4e2a JSON \u5bf9\u8c61\uff0c\u5dee\u4e0d\u591a\uff0c\u4e0d\u8fc7 Backbone \u8d4b\u4e88 Model \u9ed8\u8ba4\u5c5e\u6027\uff0c\u53ea\u80fd\u901a\u8fc7 getter\/setter \u65b9\u6cd5\u6765\u8bbf\u95ee Model \u4e2d\u7684\u5c5e\u6027\u503c\uff0c\u4e0d\u80fd\u76f4\u63a5\u7528\u70b9\u64cd\u4f5c\u7b26\uff0c\u76f8\u5f53\u4e8e Backbone \u7684\u5c5e\u6027\u662f\u79c1\u6709\u7684\u3002"},{"title":"Backbone.js \u7684 View \u4e2d\u5b9a\u4e49\u4e8b\u4ef6","link":"https:\/\/yanbin.blog\/backbone-view-define-events\/","pubDate":"Mon, 06 Jan 2014 00:48:45 -0600","author":"yabqiu@gmail.com (Yanbin Qiu)","guid":"https:\/\/yanbin.blog\/backbone-view-define-events\/","description":"\n\u4f7f\u7528 Backbone \u7684 View \u65f6\uff0c\u53ef\u4ee5\u8c61\u4f20\u7edf jQuery \u90a3\u6837\u5b9a\u4e49\u4e8b\u4ef6\uff0c<code>$(\"selector\").click(function(){...})<\/code>\u3002\u5e78\u8fd0\u7684\u662f Backbone \u8ba9\u6211\u4eec\u5728 View \u4e2d\u5b9a\u4e49\u4e8b\u4ef6\u53d8\u5f97\u66f4\u4e3a\u7b80\u5355\u548c\u96c6\u4e2d\uff0c\u53ea\u8981\u8bbe\u7f6e View \u7684\u00a0<code>events<\/code> \u5c5e\u6027\uff0c\u914d\u7f6e \u4e8b\u4ef6\uff0c\u5143\u7d20\u4ee5\u53ca\u76f8\u5e94\u7684\u5904\u7406\u65b9\u6cd5\uff0c\u57fa\u672c\u6a21\u5f0f\u5982\u4e0b\uff1a<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-js\" data-lang=\"js\"><span class=\"line\"><span class=\"ln\">1<\/span><span class=\"cl\"><span class=\"nx\">events<\/span><span class=\"o\">:<\/span> <span class=\"p\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"ln\">2<\/span><span class=\"cl\"> <span class=\"s2\">&#34;click button&#34;<\/span><span class=\"o\">:<\/span> <span class=\"s2\">&#34;event_handler&#34;<\/span><span class=\"p\">,<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"ln\">3<\/span><span class=\"cl\"> <span class=\"s2\">&#34;focus #name&#34;<\/span><span class=\"o\">:<\/span> <span class=\"s2\">&#34;event_handler&#34;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"ln\">4<\/span><span class=\"cl\"><span class=\"p\">},<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"ln\">5<\/span><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"ln\">6<\/span><span class=\"cl\"><span class=\"nx\">event_handler<\/span><span class=\"o\">:<\/span> <span class=\"kd\">function<\/span><span class=\"p\">(<\/span> <span class=\"nx\">event<\/span> <span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"ln\">7<\/span><span class=\"cl\"> <span class=\"nx\">alert<\/span><span class=\"p\">(<\/span><span class=\"nx\">event<\/span><span class=\"p\">.<\/span><span class=\"nx\">target<\/span><span class=\"p\">.<\/span><span class=\"nx\">id<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"ln\">8<\/span><span class=\"cl\"><span class=\"p\">}<\/span><\/span><\/span><\/code><\/pre><\/div>\n\u683c\u5f0f\u662f <code>\"\u4e8b\u4ef6 \u9009\u62e9\u5668\": \"\u4e8b\u4ef6\u5904\u7406\u51fd\u6570\u540d\"<\/code>, \u5947\u602a\u4e3a\u4ec0\u4e48\u8fd9\u91cc\u4e0d\u662f\u4f7f\u7528\u4e8b\u4ef6\u5904\u7406\u51fd\u6570\u540d\u7684\u5f15\u7528\uff0c\u4e5f\u5c31\u662f<strong>\u4e0d\u80fd<\/strong>\u5199\u6210\u4e0b\u9762\u4e24\u79cd\u65b9\u5f0f\uff1a"},{"title":"Backbone.js \u4f7f\u7528\u6a21\u677f","link":"https:\/\/yanbin.blog\/backbone-js-use-template\/","pubDate":"Sun, 05 Jan 2014 17:43:53 -0600","author":"yabqiu@gmail.com (Yanbin Qiu)","guid":"https:\/\/yanbin.blog\/backbone-js-use-template\/","description":"\n\u524d\u9762\u4e00\u7bc7 <a title=\"Backbone.js HelloWorld\uff0c\u5e94\u7528\u8d77\u6b65\" href=\"https:\/\/yanbin.blog\/backbone-get-started\/\" target=\"_blank\" rel=\"noopener\">Backbone.js HelloWorld\uff0c\u5e94\u7528\u8d77\u6b65<\/a> \u53ea\u662f\u8ba9 Backbone \u8dd1\u8d77\u6765\uff0c\u5b9e\u9645\u7684\u5e94\u7528\u4e2d\u4f1a\u4f7f\u7528\u5230\u6a21\u677f\uff0cModel \u7b49\uff0c\u800c\u6a21\u677f\u53c8\u662f\u8fdb\u9636\u7684\u57fa\u7840\u3002\u6240\u4ee5\u8fd9\u91cc\u4ecb\u7ecd\u5728 View \u4e2d\u4f7f\u7528\u6a21\u677f\uff0c\u4ee5\u53ca\u5982\u4f55\u5411\u6a21\u677f\u586b\u5145\u503c\uff0c\u6a21\u677f\u53ef\u4ee5\u7528\u5b57\u7b26\u4e32\uff0c\u6216\u662f\u7528 <span style=\"color: #800000;\">&lt;script type=\"text\/template\"&gt;<\/span> \u58f0\u660e\u7684\u5185\u5bb9\u3002\u4f7f\u7528 <span style=\"color: #800000;\">&lt;%= %&gt;<\/span> \u6216 <span style=\"color: #800000;\">&lt;%- %&gt;<\/span> \u6765\u58f0\u660e\u53d8\u91cf\u8f93\u51fa\u7684\u5360\u4f4d\u7b26\u3002<\/p>\n<br\/>\nBackbone \u7684\u6a21\u677f\u8981\u7528\u5230\u7684\u662f <a title=\"userscorejs\" href=\"http:\/\/underscorejs.org\" target=\"_blank\" rel=\"noopener\">underscore.js<\/a> \u5e93, \u8981\u6df1\u5165\u4e86\u89e3 Unserscore \u5c31\u770b\u5b98\u65b9\u7684 <a href=\"http:\/\/documentcloud.github.io\/underscore\/\" target=\"_blank\" rel=\"noopener\">Underscore.js \u7684\u6587\u6863<\/a>\uff0cUnderscore \u7684 template \u65b9\u6cd5\u7684\u539f\u578b\u5982\u4e0b\uff1a<br\/>\n<blockquote>\n_.template(templateString, [data], [settings])\n<\/blockquote>"},{"title":"Backbone.js HelloWorld\uff0c\u5e94\u7528\u8d77\u6b65","link":"https:\/\/yanbin.blog\/backbone-get-started\/","pubDate":"Wed, 01 Jan 2014 03:28:27 -0600","author":"yabqiu@gmail.com (Yanbin Qiu)","guid":"https:\/\/yanbin.blog\/backbone-get-started\/","description":"\nBackbone \u662f\u4e00\u4e2a JavaScript \u6846\u67b6\uff0c\u53ef\u7528\u4e8e\u521b\u5efa\u6a21\u578b-\u89c6\u56fe-\u63a7\u5236\u5668 (model-view-controller, MVC) \u7c7b\u5e94\u7528\u7a0b\u5e8f\u548c\u5355\u9875\u754c\u9762\u3002\u5b83\u8bd5\u56fe\u8ba9 JavaScript \u5e94\u7528\u7a0b\u5e8f\u66f4\u6e05\u6670\u7ed3\u6784\u5316\uff0c\u6240\u6d89\u53ca\u5230\u7684\u6982\u5ff5\u6709 \u00a0View,\u00a0Event,\u00a0Model,\u00a0Collection \u548c\u00a0Router\uff0c\u6240\u4ee5\u65b0\u624b\u521a\u5f00\u59cb\u63a5\u89e6 Backbone \u53cd\u800c\u4f1a\u663e\u5f97\u96f6\u4e71\u4e86\u3002\u518d\u52a0\u4e0a\u7f51\u4e0a\u627e\u6765\u7684\u4e00\u4e9b\u8d77\u6b65\u6559\u7a0b\u4e00\u4e0a\u6765\u5c31\u628a Event, Model, Collection \u6216\u662f Router \u63fd\u4e0a\u4e86\u3002\u5176\u5b9e\u65b0\u624b\u6700\u60f3\u8981\u4e00\u4e2a\u6700\u7b80\u5355\u7684\u771f\u76f8\uff0c\u56e0\u6b64\u7b2c\u4e00\u4e2a\u4f8b\u5b50\u53ea\u9700\u7528\u5230 View\uff0c\u5176\u4ed6\u7684\u73a9\u827a\u6682\u4e14\u6401\u7f6e\u3002<\/p>\n<br\/>\nBackbone \u5f3a\u4f9d\u8d56\u4e8e Underscore\uff0cjQuery \u662f\u53ef\u9009\u7684\uff0c\u4e0d\u8fc7\u4e3a\u64cd\u4f5c DOM \u65b9\u4fbf\u4e00\u822c\u90fd\u4f1a\u5f15\u7528\u5230 jQuery\u3002<br\/><br\/>\n\u6700\u7b80\u5355\u7684\u4f8b\u5b50\uff0c\u5206\u4e24\u6b65\u8d70\uff1a<br\/><br\/>\n1.\u00a0Backbone.View.extend(obj) \u521b\u5efa\u4e00\u4e2a View \u7c7b\u578b<br \/>\n2. \u521b\u5efa\u4e0a\u4e00\u6b65\u5f97\u5230\u7684 View \u7684\u5b9e\u4f8b\uff0c\u5b9e\u4f8b\u5316\u65f6\u5c06\u4f1a\u8c03\u7528\u524d\u4e00\u6b65 obj.initialize() \u65b9\u6cd5<br\/><br\/>\n\u4e0a\u4ee3\u7801(\u4e3a\u65b9\u4fbf\u8d77\u89c1\uff0c\u6240\u6709 JS \u811a\u672c\u90fd\u4ece\u516c\u7f51\u4e0a\u52a0\u8f7d)\uff1a"},{"title":"JavaScript \u83b7\u5f97\u4ee3\u7801\u884c\u53f7\u548c\u811a\u672c\u6587\u4ef6\u540d","link":"https:\/\/yanbin.blog\/javascript-get-execution-line-file\/","pubDate":"Wed, 01 Jan 2014 01:50:53 -0600","author":"yabqiu@gmail.com (Yanbin Qiu)","guid":"https:\/\/yanbin.blog\/javascript-get-execution-line-file\/","description":"\n\u6bd4\u5982\u8981\u5199\u4e00\u4e2a JavaScript \u7684\u65e5\u5fd7\u8f93\u51fa\u5de5\u5177\uff0c\u5728\u65b9\u6cd5 log.info() \u4e2d\u80fd\u5f97\u5230\u8c03\u7528\u5b83\u6240\u5728\u7684\u6587\u4ef6\u548c\u4ee3\u7801\u884c\u53f7\u3002\u548c\u4f17\u591a\u7684\u65e5\u5fd7\u5de5\u5177\u4e00\u6837\uff0c\u50cf log4j\uff0c\n\u90fd\u662f\u5728\u7a0b\u5e8f\u4ee3\u7801\u4e2d\u4e3b\u52a8\u629b\u51fa\u5f02\u5e38\uff0c\u7136\u540e\u4ece\u5f02\u5e38\u6808\u4e2d\u53bb\u67e5\u627e\u5230\u8c03\u7528\u8005\u6240\u5728\u7684\u4ee3\u7801\u884c\u548c\u6587\u4ef6\u540d\u3002\n\u4e0d\u8fc7\u4e5f\u5c31\u521a\u521a\u624d\u4e86\u89e3\u5230 JavaScript V8 \u5f15\u64ce\u63d0\u4f9b\u4e86\u81ea\u5df1\u7684 StackTrace API\uff0cChrome \u548c Node.js \u53ef\u7528\u3002\n\u5148\u6765\u770b\u53ef\u901a\u7528\u7684 JavaScript &nbsp;\u629b\u5f02\u5e38 throw new Error() \u7684\u65b9\u5f0f\uff0c\u4e0b\u9762\u7684\u4ee3\u7801\uff1a<br\/>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-js\" data-lang=\"js\"><span class=\"line\"><span class=\"ln\"> 1<\/span><span class=\"cl\"><span class=\"kd\">var<\/span> <span class=\"nx\">log<\/span> <span class=\"o\">=<\/span> <span class=\"p\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"ln\"> 2<\/span><span class=\"cl\"> <span class=\"nx\">info<\/span><span class=\"o\">:<\/span> <span class=\"kd\">function<\/span><span class=\"p\">(<\/span><span class=\"nx\">arg<\/span><span class=\"p\">){<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"ln\"> 3<\/span><span class=\"cl\"> <span class=\"k\">try<\/span> <span class=\"p\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"ln\"> 4<\/span><span class=\"cl\"> <span class=\"k\">throw<\/span> <span class=\"k\">new<\/span> <span class=\"nb\">Error<\/span><span class=\"p\">();<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"ln\"> 5<\/span><span class=\"cl\"> <span class=\"p\">}<\/span> <span class=\"k\">catch<\/span> <span class=\"p\">(<\/span><span class=\"nx\">e<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"ln\"> 6<\/span><span class=\"cl\"> <span class=\"nx\">alert<\/span><span class=\"p\">(<\/span><span class=\"s2\">&#34;Stack:&#34;<\/span> <span class=\"o\">+<\/span> <span class=\"nx\">e<\/span><span class=\"p\">.<\/span><span class=\"nx\">stack<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"ln\"> 7<\/span><span class=\"cl\"> <span class=\"kd\">var<\/span> <span class=\"nx\">loc<\/span><span class=\"o\">=<\/span> <span class=\"nx\">e<\/span><span class=\"p\">.<\/span><span class=\"nx\">stack<\/span><span class=\"p\">.<\/span><span class=\"nx\">replace<\/span><span class=\"p\">(<\/span><span class=\"sr\">\/Error\\n\/<\/span><span class=\"p\">).<\/span><span class=\"nx\">split<\/span><span class=\"p\">(<\/span><span class=\"sr\">\/\\n\/<\/span><span class=\"p\">)[<\/span><span class=\"mi\">1<\/span><span class=\"p\">].<\/span><span class=\"nx\">replace<\/span><span class=\"p\">(<\/span><span class=\"sr\">\/^\\s+|\\s+$\/<\/span><span class=\"p\">,<\/span> <span class=\"s2\">&#34;&#34;<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"ln\"> 8<\/span><span class=\"cl\"> <span class=\"nx\">alert<\/span><span class=\"p\">(<\/span><span class=\"s2\">&#34;Location: &#34;<\/span><span class=\"o\">+<\/span><span class=\"nx\">loc<\/span><span class=\"o\">+<\/span><span class=\"s2\">&#34;&#34;<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"ln\"> 9<\/span><span class=\"cl\"> <span class=\"p\">}<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"ln\">10<\/span><span class=\"cl\"> <span class=\"p\">}<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"ln\">11<\/span><span class=\"cl\"><span class=\"p\">};<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"ln\">12<\/span><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"ln\">13<\/span><span class=\"cl\"><span class=\"kd\">function<\/span> <span class=\"nx\">foo<\/span><span class=\"p\">(){<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"ln\">14<\/span><span class=\"cl\"> <span class=\"nx\">log<\/span><span class=\"p\">.<\/span><span class=\"nx\">info<\/span><span class=\"p\">(<\/span><span class=\"mi\">123<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"ln\">15<\/span><span class=\"cl\"><span class=\"p\">}<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"ln\">16<\/span><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"ln\">17<\/span><span class=\"cl\"><span class=\"nx\">foo<\/span><span class=\"p\">();<\/span><\/span><\/span><\/code><\/pre><\/div>\n\u70b9\u51fb\u94fe\u63a5&nbsp;<a href=\"http:\/\/jsfiddle.net\/Unmi\/53xas\/\" target=\"_blank\">http:\/\/jsfiddle.net\/Unmi\/53xas\/<\/a> \u6267\u884c\uff0c\u5176\u4e2d\u662f\u7528 document.write() \u8f93\u51fa\u7684\uff0c\u5b8c\u6574\u5f02\u5e38\u6808\u662f\uff1a"},{"title":"JSON.stringify(obj) \u65f6 TypeError: cyclic object value \u5f02\u5e38","link":"https:\/\/yanbin.blog\/json-stringifyobj-raise-typeerror\/","pubDate":"Tue, 31 Dec 2013 15:12:39 -0600","author":"yabqiu@gmail.com (Yanbin Qiu)","guid":"https:\/\/yanbin.blog\/json-stringifyobj-raise-typeerror\/","description":"\n\u4ece ECMAScript 5th Edition \u5f00\u59cb\uff0cJavaScript \u5185\u5efa\u4e86 JSON \u5bf9\u8c61\uff0c\u7528\u6765\u5904\u7406 JSON \u7684\u5e8f\u5217\u5316\u548c\u53cd\u5e8f\u5217\u5316\uff0c\u6709\u4ee5\u4e0b\u51e0\u4e2a\u65b9\u6cd5\u539f\u578b<br\/>\n<br\/>\nJSON.stringify(obj [,filter] &nbsp;[,indent])<br\/>\nJSON.parse(text [,reviver])<br\/>\n<br\/>\njQuery \u4e5f\u63d0\u4f9b\u4e86&nbsp;jQuery.parseJSON \u65b9\u6cd5\uff0c\u4f46\u662f\u6ca1\u6709\u76f8\u5e94\u7684\u5e8f\u5217\u5316\u65b9\u6cd5\u3002<br\/>\n<br\/>\n\u5982\u679c\u7528 &nbsp;JSON.stringify() \u6765\u5bf9\u4e00\u4e2a\u6709\u5faa\u73af\u5f15\u7528\u7684 JSON \u5bf9\u8c61\u8fdb\u884c\u5e8f\u5217\u5316\uff0c\u4f1a\u4ea7\u751f&nbsp;<span style=\"color: #800000;\">TypeError: cyclic object value<\/span> \u5f02\u5e38\uff0c\u7c7b\u4f3c\u4e0b\u9762\u7684\u4ee3\u7801<br\/>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-js\" data-lang=\"js\"><span class=\"line\"><span class=\"ln\">1<\/span><span class=\"cl\"><span class=\"kd\">var<\/span> <span class=\"nx\">a<\/span> <span class=\"o\">=<\/span> <span class=\"p\">{}<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"ln\">2<\/span><span class=\"cl\"><span class=\"nx\">a<\/span><span class=\"p\">.<\/span><span class=\"nx\">b<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">a<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"ln\">3<\/span><span class=\"cl\"><span class=\"k\">try<\/span><span class=\"p\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"ln\">4<\/span><span class=\"cl\"> <span class=\"nx\">JSON<\/span><span class=\"p\">.<\/span><span class=\"nx\">stringify<\/span><span class=\"p\">(<\/span><span class=\"nx\">a<\/span><span class=\"p\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"ln\">5<\/span><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"k\">catch<\/span><span class=\"p\">(<\/span><span class=\"nx\">e<\/span><span class=\"p\">){<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"ln\">6<\/span><span class=\"cl\"> <span class=\"nb\">document<\/span><span class=\"p\">.<\/span><span class=\"nx\">write<\/span><span class=\"p\">(<\/span><span class=\"nx\">e<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"ln\">7<\/span><span class=\"cl\"><span class=\"p\">}<\/span><\/span><\/span><\/code><\/pre><\/div>\n\u70b9\u51fb\u94fe\u63a5 <a href=\"http:\/\/jsfiddle.net\/Unmi\/6eLFF\/\" target=\"_blank\">http:\/\/jsfiddle.net\/Unmi\/6eLFF\/<\/a>&nbsp;\u8fd0\u884c\u4e0a\u9762\u7684\u4ee3\u7801&nbsp;"},{"title":"JavaScript \u6a21\u5757\u5e94\u7528\u4e0e\u7f16\u7a0b","link":"https:\/\/yanbin.blog\/javascript-module-programming\/","pubDate":"Thu, 26 Dec 2013 03:22:53 -0600","author":"yabqiu@gmail.com (Yanbin Qiu)","guid":"https:\/\/yanbin.blog\/javascript-module-programming\/","description":"\n\u524d\u8fb9\u6709\u4e00\u7bc7\u5173\u4e8e <a href=\"https:\/\/yanbin.blog\/javascript-object-declaration\" target=\"_blank\" rel=\"noopener\">JavaScript \u5bf9\u8c61\u58f0\u660e<\/a>\uff0c\u53ef\u4ee5\u4f5c\u4e3a\u662f JavaScript \u6a21\u5757\u5316\u7684\u4e00\u4e2a\u94fa\u57ab\u3002\u8fd9\u91cc\u4f1a\u6d89\u53ca\u5230\u4e24\u4e2a\u8bdd\u9898\u6a21\u5757\u7684\u5b9a\u4e49\u548c\u5f15\u5165\uff0c\u5bf9\u4e8e\u6a21\u5757\u5316\u7684\u7f16\u7a0b\u8bed\u8a00\uff0c\u6211\u4eec\u53ef\u4ee5\u7528 include, require \u6216 import \u90a3\u6837\u7684\u8c13\u8bcd\u6765\u5f15\u5165\u6a21\u5757\u3002\u56de\u60f3\u4e0b\u6211\u4eec\u5bf9\u4e8e\u975e\u6a21\u5757\u5316\u7684 JavaScript \u662f\u600e\u4e48\u5f15\u5165\u7684\uff0c\u6bd4\u5982\u5728 html \u6587\u4ef6\u91cc js \u6587\u4ef6\uff0c\u7528 &lt;script src=\"some.js\"&gt;&lt;\/script&gt;\u3002\u5982\u679c\u662f\u66f4\u52a8\u6001\u4e00\u70b9\u5c31\u4f1a\u7528 document.createElement(\"script\"), \u518d\u6307\u5b9a\u5b83\u7684 src \u5c5e\u6027\u4e3a\u4e00\u4e2a js \u6587\u4ef6\uff0c\u6dfb\u52a0\u52a0\u5230 DOM \u4e2d\u53bb\u7684\u65b9\u5f0f\u6765\u52a0\u8f7d js \u6587\u4ef6\u3002<\/p>\n<br\/>\n\u4e0a\u9762\u4e24\u79cd\u65b9\u5f0f\u90fd\u4e0d\u591f\u4f18\u96c5\uff0c\u6211\u4eec\u73b0\u5728\u60f3\u8981\u5b9e\u73b0\u4e3a require() \u51fd\u6570\u6765\u5f15\u5165 js \u5e93\u7684\u65b9\u5f0f\uff0c\u6240\u4ee5 JavaScript \u6a21\u5757\u7684\u89c4\u8303\u5c31\u51fa\u73b0\u4e86 <a href=\"http:\/\/wiki.commonjs.org\/wiki\/Modules\/1.1\" target=\"_blank\" rel=\"noopener\">CommonJS<\/a> \u548c <a href=\"https:\/\/github.com\/amdjs\/amdjs-api\/wiki\/AMD\" target=\"_blank\" rel=\"noopener\">AMD<\/a>(Asynchronous Module Definition) \u4e24\u79cd\u3002<br\/><br\/>\n<span style=\"color: #0000ff;\"><strong>1. CommonJS<\/strong><\/span><br\/><br\/>\nCommonJS \u4e2d\u6709\u4e00\u4e2a\u5168\u5c40\u7684\u00a0 require() \u65b9\u6cd5\uff0c\u5b83\u5c31\u662f\u6267\u884c require() \u4ee3\u7801\u540e\u9a6c\u4e0a\u4f7f\u7528\u6a21\u5757\u63d0\u4f9b\u7684\u5c5e\u6027\u6216\u65b9\u6cd5\uff0c\u5b83\u5047\u5b9a\u6267\u884c\u5b8c require() \u884c\u540e\uff0c\u6a21\u5757\u5373\u5df2\u5c31\u7eea\u3002\u4f8b\u5982\u52a0\u8f7d\u4e00\u4e2a 'math' \u6a21\u5757<br\/>\n<blockquote>\n<span style=\"color: #800000;\">var math = require('math');<\/span><br \/>\n<span style=\"color: #800000;\"> math.add(2, 3);<\/span>\n<\/blockquote>"},{"title":"JavaScript \u5bf9\u8c61\u58f0\u660e","link":"https:\/\/yanbin.blog\/javascript-object-declaration\/","pubDate":"Sat, 23 Nov 2013 09:39:21 -0600","author":"yabqiu@gmail.com (Yanbin Qiu)","guid":"https:\/\/yanbin.blog\/javascript-object-declaration\/","description":"\n\u5bf9\u8c61\uff0c\u7c7b\uff0c\u6a21\u5757\u7684\u6982\u5ff5\u53ef\u4ee5\u8ba9\u7cfb\u7edf\u66f4\u6e05\u6670\uff0c\u4ea6\u80fd\u589e\u5f3a\u4ee3\u7801\u7684\u91cd\u7528\u6027\u3002\u76ee\u524d JavaScript \u89c4\u8303\u672c\u8eab\u5e76\u4e0d\u652f\u6301\u7c7b\u6216\u6a21\u5757\uff0c\u6b63\u5728\u5236\u5b9a\u4e2d\u7684\n<a href=\"https:\/\/people.mozilla.org\/~jorendorff\/es6-draft.html\" target=\"_blank\" rel=\"noopener\">ECMAScript 6<sup>th<\/sup> Edition<\/a>\n\u5c06\u4f1a\u7eb3\u5165\u7c7b\uff0c\u6a21\u5757\u7684\u6982\u5ff5\uff0c\u4e0d\u8fc7\u4e0d\u77e5\u4f1a\u662f\u4f55\u5e74\u9a6c\u6708\u7684\u4e8b\uff0c\u6bd5\u7adf\u8fd9\u4e0d\u80fd\u50cf JDK \u5347\u7ea7\u90a3\u4e48\u5e72\u8106\u3002<\/p>\n<br\/>\n\u8fd8\u6709\u79cd\u529e\u6cd5\u6765\u5199\u6a21\u5757\u5316\u7684 JavaScript \u5c31\u662f\u4f7f\u7528\u5fae\u8f6f\u7684\u00a0 <a href=\"http:\/\/www.typescriptlang.org\/\" target=\"_blank\" rel=\"noopener\">TypeScript<\/a>\n\u6216\u662f Google \u7684 <a href=\"https:\/\/www.dartlang.org\/\" target=\"_blank\" rel=\"noopener\">Dart<\/a>\uff0c\u5b83\u4eec\u662f\u9762\u5411\u5bf9\u8c61\u7684\u7f16\u7a0b\u8bed\u8a00\uff0c\n\u80fd\u76f4\u63a5\u7f16\u8bd1\u6210\u517c\u5bb9\u7684 JavaScript \u4ee3\u7801\uff0c\u6709\u6761\u4ef6\u7684\u53ef\u4ee5\u53bb\u5c1d\u8bd5\u3002<br\/><br\/>\n\u56de\u5230\u73b0\u5b9e\u6765\uff0c\u5c31\u73b0\u6709\u7684 JavaScript \u89c4\u8303\u600e\u4e48\u53bb\u6a21\u5757\u5316\u3002\u4f17\u6240\u5468\u77e5\uff0cJavaScript \u4e2d\u51fd\u6570\u662f\u7b2c\u4e00\u7b49\u516c\u6c11\uff0c\u6240\u4ee5\u6211\u4eec\u65e9\u5148\u662f\u8fd9\u6837\u4f7f\u7528\u51fd\u6570\u6765\u58f0\u660e\u5bf9\u8c61\u7684\uff1a<br\/><br\/>\n<span style=\"color: #000080;\"><strong>1. \u539f\u59cb\u5199\u6cd5<\/strong><\/span>(\u6bd4\u76f4\u63a5\u8c03\u7528\u51fd\u6570\u663e\u5f97\u9ad8\u7ea7\u4e9b)\uff1a<br\/>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-js\" data-lang=\"js\"><span class=\"line\"><span class=\"ln\"> 1<\/span><span class=\"cl\"><span class=\"kd\">function<\/span> <span class=\"nx\">Module<\/span><span class=\"p\">(){<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"ln\"> 2<\/span><span class=\"cl\"> <span class=\"k\">this<\/span><span class=\"p\">.<\/span><span class=\"nx\">count<\/span> <span class=\"o\">=<\/span> <span class=\"mi\">10<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"ln\"> 3<\/span><span class=\"cl\"> <span class=\"k\">this<\/span><span class=\"p\">.<\/span><span class=\"nx\">foo<\/span> <span class=\"o\">=<\/span> <span class=\"kd\">function<\/span><span class=\"p\">(<\/span><span class=\"nx\">x<\/span><span class=\"p\">){<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"ln\"> 4<\/span><span class=\"cl\"> <span class=\"k\">return<\/span> <span class=\"nx\">x<\/span><span class=\"o\">+<\/span><span class=\"mi\">1<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"ln\"> 5<\/span><span class=\"cl\"> <span class=\"p\">}<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"ln\"> 6<\/span><span class=\"cl\"><span class=\"p\">}<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"ln\"> 7<\/span><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"ln\"> 8<\/span><span class=\"cl\"><span class=\"kd\">var<\/span> <span class=\"nx\">m1<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nx\">Module<\/span><span class=\"p\">();<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"ln\"> 9<\/span><span class=\"cl\"><span class=\"nx\">console<\/span><span class=\"p\">.<\/span><span class=\"nx\">log<\/span><span class=\"p\">(<\/span><span class=\"nx\">m1<\/span><span class=\"p\">.<\/span><span class=\"nx\">count<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"ln\">10<\/span><span class=\"cl\"><span class=\"nx\">console<\/span><span class=\"p\">.<\/span><span class=\"nx\">log<\/span><span class=\"p\">(<\/span><span class=\"nx\">m1<\/span><span class=\"p\">.<\/span><span class=\"nx\">foo<\/span><span class=\"p\">(<\/span><span class=\"mi\">3<\/span><span class=\"p\">));<\/span><\/span><\/span><\/code><\/pre><\/div>\n<br\/>"},{"title":"\u5728 Java \u4e2d\u4f7f\u7528\u6b63\u5219\u8868\u8fbe\u5f0f\u8fdb\u884c\u540e\u5411\u5f15\u7528($1,$2...)","link":"https:\/\/yanbin.blog\/java-regex-replace-string\/","pubDate":"Wed, 25 Apr 2012 06:02:32 -0500","author":"yabqiu@gmail.com (Yanbin Qiu)","guid":"https:\/\/yanbin.blog\/java-regex-replace-string\/","description":"\n\u81ea JDK1.4 \u5f15\u5165\u6b63\u5219\u8868\u8fbe\u5f0f\u7684\u652f\u6301\u53ef\u79f0\u5f97\u4e0a\u662f\u6b21\u5927\u6539\u53d8\uff0c<del>\u53ef Java \u7684\u6b63\u5219\u8868\u8fbe\u5f0f\u7684\u80fd\u529b\u8fd8\u662f\u5f88\u5f31\uff0c\u522b\u8bf4\u548c Perl \u6bd4\u4e86\uff0c\u5c31\u662f\u548c C# \u548c JavaScript \u7684\u6b63\u5219\u8868\u8fbe\u5f0f\u6bd4\u8f83\u6765\u4e5f\u900a\u8272\u4e0d\u5c11<\/del>\uff0c\u4e0d\u8fc7\u73b0\u5728 JVM \u4e0a\u6709\u5176\u4ed6\u8bed\u8a00\u5bf9\u6b63\u5219\u8868\u8fbe\u5f0f\u6709\u6240\u589e\u5f3a\uff0c\u50cf Groovy, jRuby \u548c Scala\u3002<\/p>\n<br\/>\n<span style=\"color: #ff0000;\">[\u4fee\u6b63\u4e00\u4e0b]\u00a0\u7b2c\u4e00\u53e5\u8bdd\u7684\u8bf4\u6cd5\u662f\u6709\u8bef\u7684\uff0c\u5176\u5b9e\u00a0JDK\u00a0\u672c\u8eab\u7684\u6b63\u5219\u8868\u8fbe\u5f0f\u5c31\u652f\u6301\u66ff\u6362\u65f6\u7528 $1, $2\u00a0\u90a3\u6837\u7684\u540e\u5411\u5206\u7ec4\u5f15\u7528\uff0c\u4f8b\u5982\uff1a<\/span><br \/>\n<span style=\"color: #ff0000;\"> String s = \"abc def\".replaceAll(\"(\\\\w+)\\\\s+(\\\\w+)\", \"$2 $1\");\u00a0 \/\/s\u00a0\u5c31\u662f\u00a0 \"def\u00a0abc\"\uff0creplaceFirst\u00a0\u4e5f\u53ef\u4ee5\u7528 $1, $2\u00a0\u7684\u66ff\u6362\u3002<\/span><br\/><br\/>\n<del>\u6bd4\u5982\u5728 Java \u4e2d\u8981\u5b9e\u73b0\u6b63\u5219\u8868\u8fbe\u5f0f\u7684\u5206\u7ec4\uff0c\u540e\u5411\u5f15\u7528\u7684\u65b9\u5f0f\u8fdb\u884c\u66ff\u6362\u633a\u590d\u6742\u7684<\/del>\uff0c\u50cf JavaScript \u5b8c\u6210\u4e24\u4e2a\u5206\u7ec4\u7684\u8c03\u6362\uff1a<br\/>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-html\" data-lang=\"html\"><span class=\"line\"><span class=\"ln\">1<\/span><span class=\"cl\"><span class=\"p\">&lt;<\/span><span class=\"nt\">script<\/span><span class=\"p\">&gt;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"ln\">2<\/span><span class=\"cl\"> <span class=\"kd\">var<\/span> <span class=\"nx\">src<\/span> <span class=\"o\">=<\/span> <span class=\"s2\">&#34;abc def&#34;<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"ln\">3<\/span><span class=\"cl\"> <span class=\"kd\">var<\/span> <span class=\"nx\">des<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">src<\/span><span class=\"p\">.<\/span><span class=\"nx\">replace<\/span><span class=\"p\">(<\/span><span class=\"sr\">\/(\\w+)\\s+(\\w+)\/<\/span><span class=\"p\">,<\/span> <span class=\"s2\">&#34;$2 $1&#34;<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"ln\">4<\/span><span class=\"cl\"> <span class=\"nb\">document<\/span><span class=\"p\">.<\/span><span class=\"nx\">write<\/span><span class=\"p\">(<\/span><span class=\"nx\">des<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"ln\">5<\/span><span class=\"cl\"> <span class=\"c1\">\/\/\u8f93\u51fa\u4e3a\uff1a def abc\n<\/span><\/span><\/span><span class=\"line\"><span class=\"ln\">6<\/span><span class=\"cl\"><span class=\"p\">&lt;\/<\/span><span class=\"nt\">script<\/span><span class=\"p\">&gt;<\/span><\/span><\/span><\/code><\/pre><\/div>\n<br\/>\n\u5728 Java \u4e2d\u53ef\u5f97\u7528\u4e0a Pattern, Matcher\uff0c\u8fd8\u8981 find()\/group() \u7b49\u64cd\u4f5c\uff0c\u4e8e\u662f\u6211\u5c31\u4f1a\u8003\u8651\u5728 Java \u4e2d\u5b8c\u6210\u7c7b\u4f3c\u7684\u529f\u80fd\u6709\u6ca1\u6709\u66f2\u7ebf\u7684\u65b9\u6cd5\uff0c\u6709\u7684\u3002\u4f60\u53ef\u4ee5\u8c03\u7528 JVM \u4e0a\u5176\u4ed6\u8bed\u8a00\u7684\u529f\u80fd\uff0c\u6211\u8fd9\u91cc\u7528\u5217\u4e86\u4e24\u79cd\u5b9e\u73b0\u65b9\u5f0f<br\/><br\/>\nJDK1.6 \u8d77\u53ef\u501f\u52a9 ScriptEngineManager \u4f7f\u7528 JavaScript \u76f8\u5e94\u7684\u51fd\u6570\uff0c\u9664\u6b64\u4e4b\u5916\u8fd8\u53ef\u7528\u7b2c\u4e09\u65b9\u7684\u5e93 <a href=\"http:\/\/jregex.sourceforge.net\/\" target=\"_blank\" rel=\"noopener\">JRegex<\/a>\uff0c\u5177\u4f53\u5b9e\u73b0\uff0c\u8bf7\u53c2\u89c1\u5982\u4e0b\u4ee3\u7801\uff0c\u8fd8\u5e26\u4e86\u6d4b\u8bd5\u7528\u4f8b\uff1a<br\/>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-java\" data-lang=\"java\"><span class=\"line\"><span class=\"ln\"> 1<\/span><span class=\"cl\"><span class=\"kn\">package<\/span><span class=\"w\"> <\/span><span class=\"nn\">cc.unmi.utils<\/span><span class=\"p\">;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"ln\"> 2<\/span><span class=\"cl\"><span class=\"kn\">import<\/span><span class=\"w\"> <\/span><span class=\"nn\">javax.script.Invocable<\/span><span class=\"p\">;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"ln\"> 3<\/span><span class=\"cl\"><span class=\"kn\">import<\/span><span class=\"w\"> <\/span><span class=\"nn\">javax.script.ScriptEngine<\/span><span class=\"p\">;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"ln\"> 4<\/span><span class=\"cl\"><span class=\"kn\">import<\/span><span class=\"w\"> <\/span><span class=\"nn\">javax.script.ScriptEngineManager<\/span><span class=\"p\">;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"ln\"> 5<\/span><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"ln\"> 6<\/span><span class=\"cl\"><span class=\"kn\">import<\/span><span class=\"w\"> <\/span><span class=\"nn\">jregex.Pattern<\/span><span class=\"p\">;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"ln\"> 7<\/span><span class=\"cl\"><span class=\"kn\">import<\/span><span class=\"w\"> <\/span><span class=\"nn\">jregex.Replacer<\/span><span class=\"p\">;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"ln\"> 8<\/span><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"ln\"> 9<\/span><span class=\"cl\"><span class=\"kd\">public<\/span><span class=\"w\"> <\/span><span class=\"kd\">class<\/span> <span class=\"nc\">StringUtils<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"ln\">10<\/span><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"kd\">public<\/span><span class=\"w\"> <\/span><span class=\"kd\">static<\/span><span class=\"w\"> <\/span><span class=\"n\">String<\/span><span class=\"w\"> <\/span><span class=\"nf\">replaceStringByJS<\/span><span class=\"p\">(<\/span><span class=\"n\">String<\/span><span class=\"w\"> <\/span><span class=\"n\">src<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"n\">String<\/span><span class=\"w\"> <\/span><span class=\"n\">jsRegex<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"n\">String<\/span><span class=\"w\"> <\/span><span class=\"n\">replacement<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"ln\">11<\/span><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"n\">ScriptEngineManager<\/span><span class=\"w\"> <\/span><span class=\"n\">manager<\/span><span class=\"w\"> <\/span><span class=\"o\">=<\/span><span class=\"w\"> <\/span><span class=\"k\">new<\/span><span class=\"w\"> <\/span><span class=\"n\">ScriptEngineManager<\/span><span class=\"p\">();<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"ln\">12<\/span><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"n\">ScriptEngine<\/span><span class=\"w\"> <\/span><span class=\"n\">engine<\/span><span class=\"w\"> <\/span><span class=\"o\">=<\/span><span class=\"w\"> <\/span><span class=\"n\">manager<\/span><span class=\"p\">.<\/span><span class=\"na\">getEngineByName<\/span><span class=\"p\">(<\/span><span class=\"s\">&#34;JavaScript&#34;<\/span><span class=\"p\">);<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"ln\">13<\/span><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"n\">String<\/span><span class=\"w\"> <\/span><span class=\"n\">script<\/span><span class=\"w\"> <\/span><span class=\"o\">=<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"ln\">14<\/span><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"s\">&#34;function rep(target, regex, replacement){\\n&#34;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"ln\">15<\/span><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"o\">+<\/span><span class=\"w\"> <\/span><span class=\"s\">&#34; var patt = new RegExp(regex,&#39;g&#39;);\\n&#34;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"ln\">16<\/span><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"o\">+<\/span><span class=\"w\"> <\/span><span class=\"s\">&#34; return target.replace(patt, replacement);\\n&#34;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"ln\">17<\/span><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"o\">+<\/span><span class=\"w\"> <\/span><span class=\"s\">&#34;}&#34;<\/span><span class=\"p\">;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"ln\">18<\/span><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"ln\">19<\/span><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">try<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"ln\">20<\/span><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"n\">engine<\/span><span class=\"p\">.<\/span><span class=\"na\">eval<\/span><span class=\"p\">(<\/span><span class=\"n\">script<\/span><span class=\"p\">);<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"ln\">21<\/span><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"n\">Invocable<\/span><span class=\"w\"> <\/span><span class=\"n\">inv<\/span><span class=\"w\"> <\/span><span class=\"o\">=<\/span><span class=\"w\"> <\/span><span class=\"p\">(<\/span><span class=\"n\">Invocable<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"n\">engine<\/span><span class=\"p\">;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"ln\">22<\/span><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"n\">String<\/span><span class=\"w\"> <\/span><span class=\"n\">result<\/span><span class=\"w\"> <\/span><span class=\"o\">=<\/span><span class=\"w\"> <\/span><span class=\"p\">(<\/span><span class=\"n\">String<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"n\">inv<\/span><span class=\"p\">.<\/span><span class=\"na\">invokeFunction<\/span><span class=\"p\">(<\/span><span class=\"s\">&#34;rep&#34;<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"n\">src<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"n\">jsRegex<\/span><span class=\"p\">,<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"ln\">23<\/span><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"n\">replacement<\/span><span class=\"p\">);<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"ln\">24<\/span><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"n\">result<\/span><span class=\"p\">;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"ln\">25<\/span><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"p\">}<\/span><span class=\"w\"> <\/span><span class=\"k\">catch<\/span><span class=\"w\"> <\/span><span class=\"p\">(<\/span><span class=\"n\">Exception<\/span><span class=\"w\"> <\/span><span class=\"n\">e<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"ln\">26<\/span><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">throw<\/span><span class=\"w\"> <\/span><span class=\"k\">new<\/span><span class=\"w\"> <\/span><span class=\"n\">RuntimeException<\/span><span class=\"p\">(<\/span><span class=\"n\">e<\/span><span class=\"p\">);<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"ln\">27<\/span><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"ln\">28<\/span><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"ln\">29<\/span><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"ln\">30<\/span><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"kd\">public<\/span><span class=\"w\"> <\/span><span class=\"kd\">static<\/span><span class=\"w\"> <\/span><span class=\"n\">String<\/span><span class=\"w\"> <\/span><span class=\"nf\">replaceStringByJRegex<\/span><span class=\"p\">(<\/span><span class=\"n\">String<\/span><span class=\"w\"> <\/span><span class=\"n\">src<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"n\">String<\/span><span class=\"w\"> <\/span><span class=\"n\">regex<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"n\">String<\/span><span class=\"w\"> <\/span><span class=\"n\">replacement<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"ln\">31<\/span><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"n\">Pattern<\/span><span class=\"w\"> <\/span><span class=\"n\">pattern<\/span><span class=\"w\"> <\/span><span class=\"o\">=<\/span><span class=\"w\"> <\/span><span class=\"k\">new<\/span><span class=\"w\"> <\/span><span class=\"n\">Pattern<\/span><span class=\"p\">(<\/span><span class=\"n\">regex<\/span><span class=\"p\">);<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"ln\">32<\/span><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"n\">Replacer<\/span><span class=\"w\"> <\/span><span class=\"n\">replacer<\/span><span class=\"w\"> <\/span><span class=\"o\">=<\/span><span class=\"w\"> <\/span><span class=\"n\">pattern<\/span><span class=\"p\">.<\/span><span class=\"na\">replacer<\/span><span class=\"p\">(<\/span><span class=\"n\">replacement<\/span><span class=\"p\">);<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"ln\">33<\/span><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"n\">String<\/span><span class=\"w\"> <\/span><span class=\"n\">result<\/span><span class=\"w\"> <\/span><span class=\"o\">=<\/span><span class=\"w\"> <\/span><span class=\"n\">replacer<\/span><span class=\"p\">.<\/span><span class=\"na\">replace<\/span><span class=\"p\">(<\/span><span class=\"n\">src<\/span><span class=\"p\">);<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"ln\">34<\/span><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"n\">result<\/span><span class=\"p\">;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"ln\">35<\/span><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"ln\">36<\/span><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"ln\">37<\/span><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"kd\">public<\/span><span class=\"w\"> <\/span><span class=\"kd\">static<\/span><span class=\"w\"> <\/span><span class=\"kt\">void<\/span><span class=\"w\"> <\/span><span class=\"nf\">main<\/span><span class=\"p\">(<\/span><span class=\"n\">String<\/span><span class=\"o\">[]<\/span><span class=\"w\"> <\/span><span class=\"n\">args<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"ln\">38<\/span><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"n\">String<\/span><span class=\"w\"> <\/span><span class=\"n\">link<\/span><span class=\"o\">=<\/span><span class=\"s\">&#34;&lt;link url=\\&#34;http:\/\/unmi.cc\\&#34; &gt;\\&#34;Home\\&#34;&lt;\/link&gt;&#34;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"ln\">39<\/span><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"o\">+<\/span><span class=\"s\">&#34;&lt;link url=\\&#34;http:\/\/unmi.cc\/tag\/java\\&#34; &gt;\\&#34;Java\\&#34;&lt;\/link&gt;&#34;<\/span><span class=\"p\">;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"ln\">40<\/span><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"n\">String<\/span><span class=\"w\"> <\/span><span class=\"n\">jsString<\/span><span class=\"w\"> <\/span><span class=\"o\">=<\/span><span class=\"w\"> <\/span><span class=\"n\">StringUtils<\/span><span class=\"p\">.<\/span><span class=\"na\">replaceStringByJS<\/span><span class=\"p\">(<\/span><span class=\"n\">link<\/span><span class=\"p\">,<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"ln\">41<\/span><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"s\">&#34;&lt;link\\\\s+url=\\\\\\&#34;(.+?)\\\\\\&#34;.[^\/]*?&gt;\\\\\\&#34;(.+?)\\\\\\&#34;&lt;\/link&gt;&#34;<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"s\">&#34;&lt;a href=\\&#34;$1\\&#34;&gt;$2&lt;\/a&gt;&#34;<\/span><span class=\"p\">);<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"ln\">42<\/span><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"n\">System<\/span><span class=\"p\">.<\/span><span class=\"na\">out<\/span><span class=\"p\">.<\/span><span class=\"na\">println<\/span><span class=\"p\">(<\/span><span class=\"n\">jsString<\/span><span class=\"p\">);<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"ln\">43<\/span><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"ln\">44<\/span><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"n\">String<\/span><span class=\"w\"> <\/span><span class=\"n\">jregexString<\/span><span class=\"w\"> <\/span><span class=\"o\">=<\/span><span class=\"w\"> <\/span><span class=\"n\">StringUtils<\/span><span class=\"p\">.<\/span><span class=\"na\">replaceStringByJRegex<\/span><span class=\"p\">(<\/span><span class=\"n\">link<\/span><span class=\"p\">,<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"ln\">45<\/span><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"s\">&#34;&lt;link\\\\s+url=\\\\\\&#34;(.+?)\\\\\\&#34;.[^\/]*?&gt;\\\\\\&#34;(.+?)\\\\\\&#34;&lt;\/link&gt;&#34;<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"s\">&#34;&lt;a href=\\&#34;$1\\&#34;&gt;$2&lt;\/a&gt;&#34;<\/span><span class=\"p\">);<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"ln\">46<\/span><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"n\">System<\/span><span class=\"p\">.<\/span><span class=\"na\">out<\/span><span class=\"p\">.<\/span><span class=\"na\">println<\/span><span class=\"p\">(<\/span><span class=\"n\">jregexString<\/span><span class=\"p\">);<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"ln\">47<\/span><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"ln\">48<\/span><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"ln\">49<\/span><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"cm\">\/*\n<\/span><\/span><\/span><span class=\"line\"><span class=\"ln\">50<\/span><span class=\"cl\"><span class=\"cm\"> * \u7a0b\u5e8f\u8f93\u51fa\n<\/span><\/span><\/span><span class=\"line\"><span class=\"ln\">51<\/span><span class=\"cl\"><span class=\"cm\"> * &lt;a href=&#34;http:\/\/unmi.cc&#34;&gt;Home&lt;\/a&gt;&lt;a href=&#34;http:\/\/unmi.cc\/tag\/java&#34;&gt;Java&lt;\/a&gt;\n<\/span><\/span><\/span><span class=\"line\"><span class=\"ln\">52<\/span><span class=\"cl\"><span class=\"cm\"> * &lt;a href=&#34;http:\/\/unmi.cc&#34;&gt;Home&lt;\/a&gt;&lt;a href=&#34;http:\/\/unmi.cc\/tag\/java&#34;&gt;Java&lt;\/a&gt;\n<\/span><\/span><\/span><span class=\"line\"><span class=\"ln\">53<\/span><span class=\"cl\"><span class=\"cm\"> *\/<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"ln\">54<\/span><span class=\"cl\"><span class=\"p\">}<\/span><\/span><\/span><\/code><\/pre><\/div>\n<br\/>\n\u8d77\u521d\u6211\u662f\u7528\u7684\u7b2c\u4e00\u79cd\u65b9\u6cd5\uff0c\u540e\u6765\u627e\u5230\u4e86\u7b2c\u4e8c\u79cd\u65b9\u5f0f\uff0c\u611f\u89c9\u7528 JRegex \u66f4\u4f18\u96c5\u4e9b\u3002"},{"title":"\u63a8\u835019\u4e2a\u5f88\u6709\u7528\u7684 JavaScript \u5e93","link":"https:\/\/yanbin.blog\/19-useful-javascript-libs\/","pubDate":"Tue, 17 May 2011 11:11:08 -0500","author":"yabqiu@gmail.com (Yanbin Qiu)","guid":"https:\/\/yanbin.blog\/19-useful-javascript-libs\/","description":"\n<p>\u6d41\u884c\u7684 JavaScript \u5e93\u6709jQuery\uff0cMooTools\uff0cPrototype\uff0cDojo\u548cYUI\u7b49\uff0c\u8fd9\u4e9b JavaScript \u5e93\u529f\u80fd\u4e30\u5bcc\uff0c\u52a0\u4e0a\u5b83\u4eec\u4f17\u591a\u7684\u63d2\u4ef6\uff0c\u51e0\u4e4e\u80fd\u5b9e\u73b0\u4efb\u4f55\u4f60\u9700\u8981\u7684\u529f\u80fd\uff0c\u7136\u800c\u9700\u8981\u5b9e\u73b0\u4e00\u4e9b\u7279\u5b9a\u7684\u529f\u80fd\uff0c\u5219\u53ef\u4ee5\u9009\u62e9\u529f\u80fd\u66f4\u4e13\u4e00\u7684\u8f7b\u91cf\u5e93\uff0c\u4eca\u5929\u8fd9\u7bc7\u6587\u7ae0\u4e0e\u5927\u5bb6\u5206\u4eab16\u4e2a\u5f88\u6709\u7528\u7684 JavaScript \u5e93\u3002<\/p>\n<p><strong><a href=\"http:\/\/www.gscottolson.com\/blackbirdjs\/\">Blackbird: Open Source JavaScript Logging Utility<\/a><\/strong><br \/><br\/>\nBlackbird \u662f\u4e00\u6b3e\u975e\u5e38\u9177\u7684 JavaScript \u8c03\u8bd5\u5de5\u5177\uff0c\u5e26\u6709\u4e00\u4e2a\u6f02\u4eae\u7684\u754c\u9762\u663e\u793a\u548c\u8fc7\u6ee4\u8c03\u8bd5\u4fe1\u606f\u3002<br \/><br\/>\n<img class=\"aligncenter post-image\"\nsrc=\"https:\/\/yanbin.blog\/posts\/2011\/19-useful-javascript-libs\/2145130548970463.jpg\"\nwidth=\"500px\"\n\/>"},{"title":"15\u6b3e\u5f88\u68d2\u7684 JavaScript \u5f00\u53d1\u5de5\u5177","link":"https:\/\/yanbin.blog\/15-javascript-dev-tools\/","pubDate":"Tue, 17 May 2011 10:39:40 -0500","author":"yabqiu@gmail.com (Yanbin Qiu)","guid":"https:\/\/yanbin.blog\/15-javascript-dev-tools\/","description":"\n\u5728\u5f00\u53d1\u4e2d\uff0c\u501f\u52a9\u5f97\u529b\u7684\u5de5\u5177\u53ef\u4ee5\u4e8b\u534a\u529f\u500d\u3002\u4eca\u5929\uff0c\u8fd9\u7bc7\u6587\u7ae0\u5411\u5927\u5bb6\u5206\u4eab\u6700\u65b0\u6536\u96c6\u768415\u6b3e\u975e\u5e38\u6709\u7528\u7684 JavaScript \u5f00\u53d1\u5de5\u5177\u3002<br\/>\n<strong><a href=\"http:\/\/www.webresourcesdepot.com\/testswarm-continious-distributed-js-testing\/\">TestSwarm: Continious &amp; Distributed JS Testing<\/a><\/strong><br\/>\n<p style=\"text-align: center;\">TestSwarm\u662fMozilla\u5b9e\u9a8c\u5ba4\u63a8\u51fa\u7684\u4e00\u4e2a\u5f00\u6e90\u9879\u76ee\uff0c\u5b83\u65e8\u5728\u4e3a\u5f00\u53d1\u8005\u63d0\u4f9b\u5728\u591a\u4e2a\u6d4f\u89c8\u5668\u7248\u672c\u4e0a\u5feb\u901f\u8f7b\u677e\u6d4b\u8bd5\u81ea\u5df1JavaScript\u4ee3\u7801\u7684\u65b9\u6cd5\u3002<br\/>\n<a href=\"http:\/\/www.webresourcesdepot.com\/testswarm-continious-distributed-js-testing\/\">\n<img class=\"aligncenter post-image\"\nsrc=\"https:\/\/yanbin.blog\/posts\/2011\/15-javascript-dev-tools\/1418360726876878.jpg\"\nwidth=\"600px\"\n\/>\n<\/a>"},{"title":"jQuery ajax \u5728 IE \u4e2d\u78b0\u5230 parsererror \u5f02\u5e38\u7684\u5206\u6790\u4e0e\u5e94\u5bf9","link":"https:\/\/yanbin.blog\/jquery-ajax-ie-parsererror\/","pubDate":"Wed, 12 Jan 2011 22:50:02 -0600","author":"yabqiu@gmail.com (Yanbin Qiu)","guid":"https:\/\/yanbin.blog\/jquery-ajax-ie-parsererror\/","description":"\n\u5728\u7528 jquery 1.4.2 \u7684 $.ajax() \u65f6\uff1a\n<br\/>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-js\" data-lang=\"js\"><span class=\"line\"><span class=\"ln\"> 1<\/span><span class=\"cl\"><span class=\"nx\">$<\/span><span class=\"p\">.<\/span><span class=\"nx\">ajax<\/span><span class=\"p\">({<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"ln\"> 2<\/span><span class=\"cl\"> <span class=\"nx\">url<\/span><span class=\"o\">:<\/span> <span class=\"s2\">&#34;updateRoles.action&#34;<\/span><span class=\"p\">,<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"ln\"> 3<\/span><span class=\"cl\"> <span class=\"nx\">data<\/span><span class=\"o\">:<\/span> <span class=\"nx\">form<\/span><span class=\"p\">.<\/span><span class=\"nx\">serialize<\/span><span class=\"p\">(),<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"ln\"> 4<\/span><span class=\"cl\"> <span class=\"nx\">dataType<\/span><span class=\"o\">:<\/span> <span class=\"s2\">&#34;json&#34;<\/span><span class=\"p\">,<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"ln\"> 5<\/span><span class=\"cl\"> <span class=\"nx\">success<\/span><span class=\"o\">:<\/span> <span class=\"kd\">function<\/span><span class=\"p\">(<\/span><span class=\"nx\">msg<\/span><span class=\"p\">){<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"ln\"> 6<\/span><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"ln\"> 7<\/span><span class=\"cl\"> <span class=\"p\">},<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"ln\"> 8<\/span><span class=\"cl\"> <span class=\"nx\">complete<\/span><span class=\"o\">:<\/span> <span class=\"kd\">function<\/span><span class=\"p\">(<\/span><span class=\"nx\">xhr<\/span><span class=\"p\">,<\/span><span class=\"nx\">msg<\/span><span class=\"p\">){<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"ln\"> 9<\/span><span class=\"cl\"> <span class=\"nx\">alert<\/span><span class=\"p\">(<\/span><span class=\"nx\">msg<\/span><span class=\"p\">);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"ln\">10<\/span><span class=\"cl\"> <span class=\"p\">}<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"ln\">11<\/span><span class=\"cl\"><span class=\"p\">});<\/span><\/span><\/span><\/code><\/pre><\/div>\n<br\/>\n\u5728\u5176\u4ed6\u6d4f\u89c8\u5668\u4e2d\u8868\u73b0\u7684\u5f88\u597d\uff0c\u4f46\u662f\u5728 IE\uff087\/8\uff09 \u4e0b\u603b\u62a5 parsererror \u9519\u8bef\u3002\u5728 jquery \u4e2d\u627e\u5230 parsererror\uff0c\u5b9a\u4f4d\u5728 5989 \u884c\uff1a"},{"title":"Web\u5f00\u53d1\u8005\u5fc5\u77e5\u768412\u6b3ejQuery\u63d2\u4ef6[\u8f6c]","link":"https:\/\/yanbin.blog\/useful-jquery-plugins-for-every-project\/","pubDate":"Tue, 07 Dec 2010 20:17:10 -0600","author":"yabqiu@gmail.com (Yanbin Qiu)","guid":"https:\/\/yanbin.blog\/useful-jquery-plugins-for-every-project\/","description":"\njQuery\u63d2\u4ef6\u80fd\u591f\u589e\u5f3a\u7f51\u7ad9\u7684\u53ef\u7528\u6027\uff0c\u6709\u6548\u5730\u6539\u5584\u7528\u6237\u4f53\u9a8c\uff0c\u8fd8\u53ef\u4ee5\u5927\u5927\u51cf\u5c11\u521b\u5efa\u4e00\u4e2a\u65b0\u7ad9\u70b9\u7684\u5f00\u53d1\u65f6\u95f4\u3002\u73b0\u5728\u7684jQuery\u63d2\u4ef6\u5f88\u591a\uff0c\u5c3d\u53ef\u4ee5\u6839\u636e\u60a8\u7684\u9879\u76ee \u8981\u6c42\u6765\u9009\u62e9\uff0c\u4e0d\u8fc7\u4e5f\u6709\u4e00\u4e9b\u63d2\u4ef6\u5f88\u597d\u7528\uff0c\u51e0\u4e4e\u5404\u79cd\u9879\u76ee\u90fd\u80fd\u591f\u7528\u5f97\u4e0a\u3002\u8fd9\u91cc\u5c31\u4e3a\u60a8\u4ecb\u7ecd12\u6b3e\u5f00\u53d1\u4e2d\u6700\u5e38\u7528\u7684jQuery\u63d2\u4ef6\u3002<br\/>\n<br\/>\n<strong>1.jQuery BBCode Editor<\/strong><br\/>\n<br\/>\n\u4e0b\u8f7d\u5730\u5740\uff1a<a href=\"http:\/\/www.w3theme.com\/jquery-bbedit\/\" target=\"_blank\">http:\/\/www.w3theme.com\/jquery-bbedit\/<\/a><br\/>\n<br\/>\nBbcode\u7b80\u5355\u6613\u7528\uff0c\u5b83\u662fBBS\u3001\u8bba\u575b\u3001Blog\u7b49\u7f51\u7edc\u5e94\u7528\u4e0a\u7684\u4e00\u79cd\u5e38\u7528\u8f93\u5165\u8bed\u6cd5\u3002jQuery BbCode Editor\u63d0\u4f9b\u81ea\u5b9a\u4e49\u8bbe\u7f6e\uff0c\u53ef\u4ee5\u6253\u9020\u51fa\u5f88\u4e2a\u6027\u5316\u7684bbcode\u7f16\u8f91\u5668\uff0c\u5b83\u7684\u6e90\u4ee3\u7801\u90fd\u53ef\u4ee5\u6839\u636e\u9700\u6c42\u7075\u6d3b\u4fee\u6539\u3002"},{"title":"XSLT \u4e2d\u7528 JavaScript \u81ea\u5b9a\u4e49\u51fd\u6570\u5904\u7406\u53c2\u6570","link":"https:\/\/yanbin.blog\/xslt-javascript-function-parameter\/","pubDate":"Wed, 08 Sep 2010 07:23:59 -0500","author":"yabqiu@gmail.com (Yanbin Qiu)","guid":"https:\/\/yanbin.blog\/xslt-javascript-function-parameter\/","description":"\n\u66fe\u7ecf\u5199\u8fc7\u4e00\u7bc7 <a href=\"https:\/\/yanbin.blog\/xslt-csharp-jscript-vb-function\" target=\"_blank\" rel=\"noopener\">XSLT \u6587\u4ef6\u4e2d\u4f7f\u7528C#\/JScript\/VB \u81ea\u5b9a\u4e49\u51fd\u6570<\/a>\u00a0\u600e\u4e48\u7528 C#\/JScript\/VB \u5728 XSL\/XSLT \u4e2d\u81ea\u5b9a\u4e49\u51fd\u6570\u3002\u90a3\u65f6\u5019\u539f\u672c\u60f3\u76f4\u63a5\u7528 JavaScript \u6765\u81ea\u5b9a\u4e49\u51fd\u6570\uff0c\u56e0\u4e3a JavaScript \u54ea\u53f0\u673a\u5668\u4e0a\u90fd\u80fd\u8dd1\uff0c\u4f46\u51fa\u4e86\u4e9b\u95ee\u9898\uff0c\u6240\u4ee5\u5b9e\u9645\u4e2d\u662f\u7528\u7684 C# \u81ea\u5b9a\u4e49\u7684 XSLT \u51fd\u6570\u3002<\/p>\n<br\/>\n\u8fd9\u6837\u7684\u95ee\u9898\u65e0\u8bba\u4ece\u54ea\u65b9\u9762\u8bb2\u90fd\u4e00\u76f4\u56de\u907f\u4e0d\u4e86\uff0c\u60c5\u51b5\u662f\u5982\u679c\u5728 JavaScript \u5b9a\u4e49\u51fd\u6570\u4e2d\u76f4\u63a5\u628a\u4f20\u5165\u7684\u53c2\u6570\u8fd4\u56de\u662f\u6ca1\u95ee\u9898\u7684\uff0c\u4f46\u8981\u4f5c\u4efb\u4f55\u7684\u5904\u7406\uff0c\u6216\u8005\u8c03\u7528 JS \u51fd\u6570\u90fd\u4f1a\u5931\u8d25\u3002XSLT \u4e2d\u7684\u81ea\u5b9a\u4e49\u51fd\u6570\uff0c\u4e0d\u5bf9\u53c2\u6570\u8fdb\u884c\u52a0\u5de5\u5904\u7406\u662f\u6ca1\u6709\u610f\u4e49\u7684\u3002\u6bd4\u5982\u5728 XSLT \u4e2d\u5199\u5982\u4e0b\u51fd\u6570\uff1a"},{"title":"form.action \u600e\u4e48\u5c31\u4e0d\u80fd\u8bbe\u7f6e\u8868\u5355\u7684\u5904\u7406\u9875\u4e86\u5462\uff1f","link":"https:\/\/yanbin.blog\/form-action-undefined-not-support\/","pubDate":"Tue, 31 Aug 2010 12:26:06 -0500","author":"yabqiu@gmail.com (Yanbin Qiu)","guid":"https:\/\/yanbin.blog\/form-action-undefined-not-support\/","description":"\n\u4e00\u4e2a\u7f51\u9875\u91cc\u65f6\u5e38\u4f1a\u5199\u591a\u4e2a\u63d0\u4ea4\u6309\u94ae\uff0c\u53ef\u4ee5\u70b9\u51fb\u4e0d\u540c\u6309\u94ae\u65f6\u5206\u522b\u8bbe\u7f6e\u67d0\u4e2a\u9690\u85cf\u57df\u7684\u503c\uff0c\u90fd\u662f\u63d0\u4ea4\u5230\u540c\u4e00\u4e2a\u9875\u9762\uff0c\u7136\u540e\u5728\u5904\u7406\u9875\u9762\u53ef\u4ee5\u77e5\u9053\u5e94\u5982\u4f55\u533a\u522b\u5bf9\u5f85\u3002\u4e5f\u53ef\u80fd\u5404\u81ea\u7684 onclick \u4e8b\u4ef6\u4e2d\u6539\u53d8 form \u7684 action \u5c5e\u6027\u6307\u5411\u4e0d\u540c\u7684\u5904\u7406\u9875\u9762\u540e\u63d0\u4ea4\u8868\u7ae0\u3002\u5728\u5904\u7406\u8868\u5355\u9875\u9762\u903b\u8f91\u590d\u6742\u4e14\u65e0\u591a\u5c11\u76f8\u5173\u6027\u7684\u65f6\u5019\uff0c\u6211\u4f1a\u9009\u62e9\u540e\u4e00\u79cd\u5904\u7406\u65b9\u5f0f\u3002<\/p>\n<br\/>\n\u53ef\u4ee5\u4eca\u5929\u78b0\u5230\u4e00\u4e2a\u4e8b\u60c5\uff0c\u5728\u70b9\u51fb\u67d0\u4e2a\u63d0\u4ea4\u6309\u94ae\uff0c\u6b32\u7528(\u5047\u8bbe form \u7684 id \u4e3a 'post')<br\/><br\/>\ndocument.getElementById('post').action='http:\/\/unmi.cc\/some'"},{"title":"\u4ecb\u7ecd\u4e00\u6b3e jQuery \u7684 LoadMask(\u8bf7\u7a0d\u5019)\u7684\u63d2\u4ef6","link":"https:\/\/yanbin.blog\/jquery-mask-blockui\/","pubDate":"Tue, 24 Aug 2010 08:17:34 -0500","author":"yabqiu@gmail.com (Yanbin Qiu)","guid":"https:\/\/yanbin.blog\/jquery-mask-blockui\/","description":"\njQuery \u6846\u67b6\u6765\u8bf4\u80af\u5b9a\u6ca1\u6709\u54ea\u4e2a\u6709 jQuery \u7528\u5f97\u90a3\u4e48\u5e7f\u6cdb\u7684\uff0c\u5c24\u5176\u662f jQuery \u7684\u63d2\u4ef6\u601d\u60f3\u5438\u5f15\u4e86\u4f17\u591a\u8d21\u732e\u8005\u3002\u5e38\u5e38\u89c1\u5230\u8fd9\u6837\u7684\u5e94\u7528\uff0c\u70b9\u51fb\u6309\u94ae\u65f6\u663e\u793a\u4e00\u4e2a\u906e\u7f69\u5c42\uff0c\u201c\u8bf7\u7a0d\u5019\uff0c\u6b63\u5728\u5904\u7406\u4e2d......\u201d\u3002\u5e94\u8be5\u6709\u4e0d\u5c11\u7c7b\u4f3c\u529f\u80fd\u7684\u63d2\u4ef6\uff0c\u6211\u73b0\u5728\u6240\u7528\u7684\u662f <a href=\"http:\/\/jquery.malsup.com\/block\/\" target=\"_blank\" rel=\"noopener\">BlockUI<\/a> \u63d2\u4ef6\uff0c\u8fd8\u6709\u4e00\u4e2a\u53eb\u505a <a href=\"http:\/\/code.google.com\/p\/jquery-loadmask\/\" target=\"_blank\" rel=\"noopener\">LoadMask<\/a> \u7684\u63d2\u4ef6\u4e5f\u80fd\u5b9e\u73b0\u3002<br\/><br\/>\n\u636e\u6211\u76f8\u6bd4\u8f83\u800c\u8a00\uff0c\u89c9\u5f97 BlockUI \u63d2\u4ef6\u8981\u6bd4 LoadMask \u5f3a\u5927\u4e9b\uff0c\u5b83\u4eec\u90fd\u53ef\u4ee5\u9009\u62e9\u6027\u7684\u906e\u4f4f\u6574\u4e2a Body \u6216\u662f\u67d0\u4e2a\u6307\u5b9a\u7684\u5143\u7d20\u3002BlockUI \u65e0\u8bba\u662f\u529f\u80fd\u8fd8\u662f\u754c\u9762\u5b9a\u5236\u6027\u90fd\u6bd4 LoadMask \u8981\u4e30\u5bcc\u4e9b\uff0c\u4f8b\u5982 BlockUI \u63d0\u4f9b\u4e86 Overlay \u906e\u7f69\u5c42\u7684\u6e10\u5165\u6e10\u51fa\u5f0f\u52a8\u753b\u663e\u793a\uff0cJS \u4e2d\u7684\u6837\u5f0f\u5b9a\u5236\uff0c\u6d88\u606f\u63d0\u793a\u7684\u652f\u6301\uff0c\u63d0\u793a\u5c42\u53ef\u663e\u793a\u5728\u53f3\u4e0a\u89d2\uff0c\u8fd8\u53ef\u505a\u51fa\u6a21\u6001\u7a97\u53e3\uff0c\u4ee5\u53ca\u7ed3\u675f\u540e\u8fdb\u884c\u51fd\u6570\u56de\u8c03\u3002"},{"title":"VS 2008\u4e2d\u7684jQuery Intellisense[\u8f6c]","link":"https:\/\/yanbin.blog\/vs-2008-jquery-intellisense\/","pubDate":"Tue, 08 Jun 2010 21:52:00 -0500","author":"yabqiu@gmail.com (Yanbin Qiu)","guid":"https:\/\/yanbin.blog\/vs-2008-jquery-intellisense\/","description":"\n\u3010\u539f\u6587\u5730\u5740\u3011<a title=\"VS 2008\u4e2d\u7684jQuery Intellisense\" href=\"http:\/\/weblogs.asp.net\/scottgu\/archive\/2008\/11\/21\/jquery-intellisense-in-vs-2008.aspx\">jQuery Intellisense in VS 2008 <\/a><br\/>\n\u3010\u539f\u6587\u53d1\u8868\u65e5\u671f\u3011 Friday, November 21, 2008 2:07 AM<br\/>\n<br\/>\n\u4e0a\u4e2a\u6708\uff0c\u6211\u5728\u535a\u5ba2\u91cc\u5ba3\u5e03\u4e86<a href=\"http:\/\/blog.joycode.com\/scottgu\/archive\/2008\/09\/29\/115287.aspx\" target=\"_blank\">\u5fae\u8f6f\u5c06\u5bf9jQuery\u63d0\u4f9b\u652f\u6301<\/a>\u3002\u5728\u8fc7\u53bb\u7684\u51e0\u4e2a\u661f\u671f\u91cc\uff0c\u6211\u4eec\u4e0ejQuery\u5f00\u53d1\u56e2\u961f\u5408\u4f5c\uff0c\u5728Studio 2008 \u548c Visual Web Developer 2008 Express\u7248\u672c\uff08\u514d\u8d39\u7684\uff09\u4e2d\u589e\u52a0\u4e86\u5f88\u597d\u7684jQuery intellisense\u652f\u6301\u3002\u73b0\u5728\u8fd9\u4e2a\u652f\u6301\u53ef\u4ee5\u4e0b\u8f7d\u4f7f\u7528\u4e86\u3002<br\/>\n<h3>\u5728VS 2008\u4e2d\u542f\u7528jQuery Intellisense\u7684\u6b65\u9aa4<\/h3>\n\u8981\u5728VS\u4e2d\u542f\u7528jQuery\u7684intellisense\u5b8c\u6210\uff0c\u4f60\u8981\u9075\u5faa\u4e09\u4e2a\u6b65\u9aa4\uff1a"},{"title":"\u96c5\u864eJavaScript\u67b6\u6784\u5e08\uff1a\u7f51\u9875\u5f00\u53d1\u6280\u672f\u5b89\u5168\u4f18\u5148[\u8f6c]","link":"https:\/\/yanbin.blog\/yahoo-web-page-security\/","pubDate":"Mon, 26 Apr 2010 09:49:00 -0500","author":"yabqiu@gmail.com (Yanbin Qiu)","guid":"https:\/\/yanbin.blog\/yahoo-web-page-security\/","description":"\n\u7531\u4e8e\u5f53\u524d\u6280\u672f\u4ecd\u504f\u5411\u529f\u80fd\u5f3a\u5316\u4e3a\u4e3b\u8981\u601d\u7ef4\uff0c\u6307\u4ee4\u7801\u8d8b\u5411\u5e9e\u6742\u7684\u7ed3\u679c\uff0c\u5bb9\u6613\u4ea7\u751f\u66f4\u591a\u5b89\u5168\u6f0f\u6d1e\uff0c\u4e14\u5931\u53bb\u5feb\u901f\u56e0\u5e94\u653b\u51fb\u8c03\u6574\u67b6\u6784\u7684\u7075\u6d3b\u6027\u3002<br\/>\n<strong>\u8eab \u4e3aJavaScript\u7f51\u8def\u6280\u672f\u91cd\u8981\u63a8\u624b\u7684\u96c5\u864e\uff08Yahoo!\uff09\u67b6\u6784\u8bbe\u8ba1\u5e08Douglas Crockford\u8868\u793a\uff0c\u73b0\u884c\u7f51\u9875\u5f00\u53d1\u6280\u672f\u601d\u7ef4\u4ecd\u504f\u91cd\u591a\u5a92\u4f53\u529f\u80fd\u6216\u6d4f\u89c8\u6548\u80fd\u7684\u63d0\u5347\uff0c\u672a\u6765\u5e94\u4ee5\u5b89\u5168\u4e3a\u7b2c\u4e00\u4f18\u5148\u3002<\/strong><br\/>\n<br\/>\nCrockford \u73b0\u4e3aYahoo!\u8d44\u6df1JavaScript\u67b6\u6784\u5e08\uff0c\u8d1f\u8d23YUI\uff08Yahoo! User Interface\uff09\u7684\u67b6\u6784\u8bbe\u8ba1\uff0c\u5e76\u4e14\u62c5\u4efbECMA JavaScript 2.0\u6280\u672f\u59d4\u5458\u4f1a\u6210\u5458\uff0c\u4e3aJavaScript\u5f00\u53d1\u793e\u7fa4\u5927\u5e08\u7ea7\u4eba\u7269\uff0c\u6b64\u6b21\u53d7\u9080\u6765\u53f0\u53c2\u52a0OSDC\uff08Open Source Developer's Conference Taiwan\uff09\u8fdb\u884c\u4e13\u9898\u6f14\u8bb2\uff0c\u5411\u56fd\u5185\u5f00\u53d1\u8005\u4ecb\u7ecdECMA JavaScript\u7684\u53d1\u5c55\u3002"},{"title":"\u90a3\u4e9b\u76f8\u89c1\u6068\u665a\u7684 JavaScript \u6280\u5de7[\u6458]","link":"https:\/\/yanbin.blog\/more-javascript-tips\/","pubDate":"Mon, 26 Apr 2010 09:48:00 -0500","author":"yabqiu@gmail.com (Yanbin Qiu)","guid":"https:\/\/yanbin.blog\/more-javascript-tips\/","description":"\nJavaScript \u7684\u6210\u529f\u8ba9\u4eba\u6d25\u6d25\u4e50\u9053\uff0c\u4e3a Web \u7f51\u9875\u7f16\u5199 JavaScript \u4ee3\u7801\u5df2\u7ecf\u662f\u6240\u6709 Web \u8bbe\u8ba1\u5e08\u7684\u57fa\u672c\u529f\uff0c\u8fd9\u95e8\u6709\u8da3\u7684\u8bed\u8a00\u8574\u85cf\u7740\u8bb8\u591a\u4e0d\u4e3a\u4eba\u719f\u77e5\u7684\u4e1c\u897f\uff0c\u5373\u4f7f\u591a\u5e74\u7684 JavaScript \u7a0b\u5e8f\u5458\uff0c\u4e5f\u672a\u80fd\u5b8c\u5168\u5403\u900f\u3002\u672c\u6587\u4ece7\u4e2a\u65b9\u9762\u8bb2\u8ff0 JavaScript \u4e2d\u90a3\u4e9b\u4f60\u4e0d\u5f88\u719f\u77e5\u4f46\u975e\u5e38\u5b9e\u7528\u7684\u6280\u5de7\u3002<br\/>\n<br\/>\n\u7b80\u7565\u8bed\u53e5<br\/>\n<strong>JavaScript \u53ef\u4ee5\u4f7f\u7528\u7b80\u7565\u8bed\u53e5\u5feb\u901f\u521b\u5efa\u5bf9\u8c61\u548c\u6570\u7ec4\uff0c\u6bd4\u5982\u4e0b\u9762\u7684\u4ee3\u7801\uff1a<\/strong><br\/>\n<img class=\"aligncenter post-image\"\nsrc=\"https:\/\/yanbin.blog\/posts\/2010\/more-javascript-tips\/p1.gif\"\n\/>"},{"title":"\u5b9e\u7528\u7684 JavaScript \u6d4b\u8bd5\u53ca\u6548\u9a8c\u5de5\u5177[\u8f6c]","link":"https:\/\/yanbin.blog\/javascript-test-tools\/","pubDate":"Fri, 16 Apr 2010 00:15:00 -0500","author":"yabqiu@gmail.com (Yanbin Qiu)","guid":"https:\/\/yanbin.blog\/javascript-test-tools\/","description":"\n<strong>JavaScript<\/strong> \u662f\u4e00\u6b3e\u5f3a\u5927\u7684\u5e7f\u6cdb\u8fd0\u7528\u4e8e\u73b0\u4ee3Web\u7ad9\u70b9\u53ca\u5e94\u7528\u7684\u811a\u672c\u8bed\u8a00\u3002\u4f5c\u4e3a\u4e00\u4e2a\u6280\u827a\u7cbe\u6e5b\u7684<strong> Web \u5f00\u53d1\u8005<\/strong>\uff0c\u638c\u63e1JavaScript\u53ef\u4ee5\u589e\u5f3a\u7528\u6237\u7684\u4f7f\u7528\u4f53\u9a8c\uff0c\u63d0\u4f9b\u4ea4\u4e92\u53ca\u5bcc\u5ba2\u6237\u7aef\u7b49\u529f\u80fd\u3002<br\/>\n\u5c3d\u7ba1JavaScript \u7684\u8bed\u6cd5\u975e\u5e38\u7b80\u5355\uff0c\u4f46\u5bf9\u4e8e\u5199\u7a0b\u5e8f\u800c\u8a00\u4ecd\u7136\u662f\u56f0\u96be\u91cd\u91cd\uff0c\u5c31\u662f\u56e0\u4e3a\u5b83\u7684\u8fd0\u884c\u73af\u5883\uff1a\u57fa\u4e8eWeb\u6d4f\u89c8\u5668\u3002<br\/>\n<br\/>\n\u4ee5\u4e0b\u60a8\u53ef\u4ee5\u770b\u5230\u6536\u96c6\u7684<strong><a href=\"http:\/\/www.iwanna.cn\/archives\/2010\/04\/15\/2723\/\">8\u4e2a\u5b9e\u7528\u7684 JavaScript \u6d4b\u8bd5\u53ca\u6548\u9a8c\u5de5\u5177<\/a><\/strong>\uff0c\u5b83\u4eec\u90fd\u53ef\u4ee5\u5728\u4e0d\u540c\u73af\u5883\u4e0b\u8fdb\u884c\u5355\u5143\u6d4b\u8bd5\u53ca\u6821\u9a8c\u6d4b\u8bd5\u60a8\u7684\u811a\u672c\u3002<br\/>\n<br\/>\n<a href=\"http:\/\/jslint.com\/\">JSLint<\/a><br\/>\nJSLint\u662f\u57fa\u4e8eWeb\u7684\u9a8c\u8bc1JavaScript\u9519\u8bef\u4ee3\u7801\u7684\u5de5\u5177\u3002\u5b83\u62e5\u6709\u7684\u529f\u80fd\u53ca\u7279\u5b9a\u7684\u8bbe\u7f6e\u6765\u4f7f\u7528\u60a8\u7684\u9700\u6c42\uff0c\u81ea\u5b9a\u4e49\u4f60\u7684\u9a8c\u8bc1\u7b97\u6cd5\u3002"},{"title":"Ext.data.Record \u7684\u57fa\u672c\u6cd5\u53ca\u5176 API \u5e2e\u52a9\u7684\u4e00\u4e2a Bug","link":"https:\/\/yanbin.blog\/extjs-data-record-api-bug\/","pubDate":"Thu, 23 Jul 2009 03:02:00 -0500","author":"yabqiu@gmail.com (Yanbin Qiu)","guid":"https:\/\/yanbin.blog\/extjs-data-record-api-bug\/","description":"\n<strong>\u57fa\u672c\u7528\u6cd5(\u4e0d\u6d89\u53ca\u5176\u4ed6\u76f8\u5173\u7c7b)\uff1a<\/strong><br\/>\n<br\/>\nExt.data.Record \u5b9e\u4f8b\u5c31\u662f\u5bf9\u5e94\u4e00\u6761\u8bb0\u5f55\uff0c\u8bb0\u5f55\u901a\u5e38\u4f1a\u653e\u5728\u6570\u636e\u96c6 Store \u4e2d\uff0c\u5176\u4e2d\u5305\u542b\u4e86\u6570\u636e\u7684\u5b9a\u4e49\u4fe1\u606f(\u5b57\u6bb5\u540d\u7b49) \u548c\u6570\u636e\u7684\u503c\u4fe1\u606f\u3002\u8fd9\u91cc\u4e0d\u6d89\u53ca\u4e0e\u5b83\u76f8\u5173\u7684 Proxy\u3001DataReader \u548c Store\uff0c\u53ea\u5355\u7eaf\u7684\u7528 Record \u7684\u65b9\u6cd5\u3002\u901a\u5e38\u662f\u4e24\u6b65\uff0c\u5148\u8c03\u7528 Record \u7684 create() \u65b9\u6cd5\uff0c\u8fd4\u56de\u4e00\u4e2a\u7c7b\uff0c\u7136\u800c new \u524d\u9762\u65b9\u6cd5\u8fd4\u56de\u7684\u7c7b\uff0c\u4ee3\u7801\u8fc7\u7a0b\u5982\u4e0b\uff1a<br\/>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-js\" data-lang=\"js\"><span class=\"line\"><span class=\"ln\"> 1<\/span><span class=\"cl\"><span class=\"c1\">\/\/\u7b2c\u4e00\u6b65\uff0ccreate() \u8fd4\u56de\u4e00\u4e2a Record \u7684\u5b50\u7c7b(\u5b9a\u4e49\u4e86\u6570\u636e\u8868\u73b0\uff0c\u6709\u70b9\u50cf\u6cdb\u578b)\n<\/span><\/span><\/span><span class=\"line\"><span class=\"ln\"> 2<\/span><span class=\"cl\"><span class=\"kd\">var<\/span> <span class=\"nx\">Person<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">Ext<\/span><span class=\"p\">.<\/span><span class=\"nx\">data<\/span><span class=\"p\">.<\/span><span class=\"nx\">Record<\/span><span class=\"p\">.<\/span><span class=\"nx\">create<\/span><span class=\"p\">([<\/span> <span class=\"c1\">\/\/\u7528\u5bf9\u8c61\u6570\u7ec4\u6307\u5b9a\u6bcf\u4e2a\u5b57\u6bb5\u540d\n<\/span><\/span><\/span><span class=\"line\"><span class=\"ln\"> 3<\/span><span class=\"cl\"> <span class=\"p\">{<\/span><span class=\"nx\">name<\/span><span class=\"o\">:<\/span><span class=\"s1\">&#39;name&#39;<\/span><span class=\"p\">},{<\/span><span class=\"nx\">name<\/span><span class=\"o\">:<\/span><span class=\"s1\">&#39;email&#39;<\/span><span class=\"p\">}<\/span> <span class=\"c1\">\/\/name \u5c5e\u6027\u6307\u5b9a\u6bcf\u4e2a\u5b57\u6bb5\u540d\n<\/span><\/span><\/span><span class=\"line\"><span class=\"ln\"> 4<\/span><span class=\"cl\"><span class=\"p\">]);<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"ln\"> 5<\/span><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"ln\"> 6<\/span><span class=\"cl\"><span class=\"c1\">\/\/\u901a\u8fc7\u524d\u9762 create() \u8fd4\u56de\u7684 Person \u7c7b\u521b\u5efa record \u5b9e\u4f8b\n<\/span><\/span><\/span><span class=\"line\"><span class=\"ln\"> 7<\/span><span class=\"cl\"><span class=\"kd\">var<\/span> <span class=\"nx\">record<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nx\">Person<\/span><span class=\"p\">({<\/span><span class=\"c1\">\/\/\u4f20\u5165\u4e00\u4e2a\u5bf9\u8c61\u4f5c\u4e3a\u7b2c\u4e00\u4e2a\u53c2\u6570\uff0c\u6ce8\u610f\u5c5e\u6027\u540d\u5bf9\u5e94\n<\/span><\/span><\/span><span class=\"line\"><span class=\"ln\"> 8<\/span><span class=\"cl\"> <span class=\"nx\">name<\/span><span class=\"o\">:<\/span><span class=\"s1\">&#39;Unmi&#39;<\/span><span class=\"p\">,<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"ln\"> 9<\/span><span class=\"cl\"> <span class=\"nx\">email<\/span><span class=\"o\">:<\/span><span class=\"s1\">&#39;fantasia@sina.com&#39;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"ln\">10<\/span><span class=\"cl\"><span class=\"p\">},<\/span><span class=\"mi\">2009<\/span><span class=\"p\">);<\/span> <span class=\"c1\">\/\/\u7b2c\u4e8c\u4e2a\u53c2\u6570\u6307\u5b9a\u8bb0\u5f55\u7684\u6807\u8bc6 ID\uff0c\u672a\u6307\u5b9a ID \u5219\u4e3a\u4f60\u7528\u6574\u6570\u8fdb\u884c\u7f16\u53f7\n<\/span><\/span><\/span><span class=\"line\"><span class=\"ln\">11<\/span><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"ln\">12<\/span><span class=\"cl\"><span class=\"c1\">\/\/\u9a8c\u8bc1\u6548\u679c\uff0c\u53ea\u53d6 id \u548c\u5176\u4e2d\u7684 email \u5c5e\u6027\uff0c\u53ef\u8bd5\u4e0b\u524d\u9762\u65e0 {id:&#39;name&#39;}\u7684\u60c5\u51b5\n<\/span><\/span><\/span><span class=\"line\"><span class=\"ln\">13<\/span><span class=\"cl\"><span class=\"nx\">alert<\/span><span class=\"p\">(<\/span><span class=\"s1\">&#39;id:&#39;<\/span> <span class=\"o\">+<\/span> <span class=\"nx\">record<\/span><span class=\"p\">.<\/span><span class=\"nx\">id<\/span> <span class=\"o\">+<\/span><span class=\"s2\">&#34;, email:&#34;<\/span> <span class=\"o\">+<\/span> <span class=\"nx\">record<\/span><span class=\"p\">.<\/span><span class=\"nx\">get<\/span><span class=\"p\">(<\/span><span class=\"s1\">&#39;email&#39;<\/span><span class=\"p\">));<\/span><\/span><\/span><\/code><\/pre><\/div>\n\u4ee3\u7801\u8bf4\u660e\uff1a"},{"title":"ExtJs \u4e2d\u4f7f\u7528 TaskRunner \u548c DelayedTask \u5982\u4f55\u4f20\u53c2\u6570\u5230 run() \u65b9\u6cd5","link":"https:\/\/yanbin.blog\/extjs-taskrunner-delayedtask-run-method\/","pubDate":"Tue, 21 Jul 2009 09:20:00 -0500","author":"yabqiu@gmail.com (Yanbin Qiu)","guid":"https:\/\/yanbin.blog\/extjs-taskrunner-delayedtask-run-method\/","description":"\n\u5728 ExtJs \u4e2d\u652f\u6301\u591a\u7ebf\u7a0b\u7684\u7c7b\u6709 Ext.util.TaskRunner \u548c Ext.util.DelayedTask\u3002TaskRunner \u63d0\u4f9b\u4e86\u591a\u7ebf\u7a0b\u7684\u5b9a\u65f6\u670d\u52a1\uff0cDelayedTask \u5141\u8bb8\u4f60\u5ef6\u65f6\u591a\u4e45\u5728\u65b0\u5efa\u7ebf\u7a0b\u4e2d\u6267\u884c\u4e00\u4e2a\u4efb\u52a1\u3002Ext.TaskMgr \u662f\u4e00\u4e2a TaskRunner \u5b9e\u4f8b\uff0c\u5728 TaskMgr.js \u6e90\u7801\u4e2d\u53ef\u4ee5\u770b\u5230\u6700\u540e\u4e00\u884c\u662f\uff1a<\/p>\n<br\/>\nExt.TaskMgr = new Ext.util.TaskRunner();<br\/><br\/>\n\u5b9e\u8d28\u4e0a\u4e0d\u7ba1\u662f TaskRunner \u8fd8\u662f DelayedTask\uff0c\u5b83\u4eec\u90fd\u662f\u901a\u8fc7 setInterval() \u6765\u6267\u884c\u4efb\u52a1\u7684\uff0cTaskRunner \u80fd\u591a\u6b21\u91cd\u590d\u7684\u6267\u884c\u4e00\u4e2a\u65b9\u6cd5\uff0c\u800c DelayedTask \u662f\u5ef6\u65f6\u6267\u884c\u5b8c\u4e00\u6b21\u4efb\u52a1\u540e\u5c31\u4f1a\u8c03\u7528 clearInterval() \u6765\u4fdd\u8bc1\u53ea\u6267\u884c\u4e00\u6b21\u3002\u6240\u4ee5\u8fd9\u91cc\u6240\u8bf4\u5982\u4f55\u5411\u4efb\u52a1\u7684 run() \u65b9\u6cd5\u4f20\u9012\u53c2\u6570\uff0c\u672c\u8d28\u4e0a\u5c31\u662f\u5411 setInterval() \u4e2d\u65b9\u6cd5\u4f20\u9012\u53c2\u6570\u3002"},{"title":"ExtJs \u4e2d xtype \u4e0e\u7ec4\u4ef6\u7c7b\u7684\u5bf9\u5e94\u8868","link":"https:\/\/yanbin.blog\/extjs-xtype-class-contrast\/","pubDate":"Thu, 16 Jul 2009 02:02:00 -0500","author":"yabqiu@gmail.com (Yanbin Qiu)","guid":"https:\/\/yanbin.blog\/extjs-xtype-class-contrast\/","description":"\n\u6211\u4eec\u5728\u4f7f\u7528 ExtJs \u521b\u5efa\u7ec4\u4ef6\u65f6\u6700\u5bb9\u6613\u7406\u89e3\u7684\u5f53\u7136\u662f\u7528<br\/>\n\u00a0<br\/>\nnew Ext.form.TextField({fieldLabel:'\u59d3\u540d', id:'name',width:120})\uff1b<br\/>\n<br\/>\n\u6211\u4eec\u8fd8\u53ef\u4ee5\u76f4\u63a5\u7528 xtype(\u6bd4\u5982 TextField \u5bf9\u5e94\u7684 xtype \u662f textfield) \u7684\u5bf9\u8c61\u5f62\u5f0f\u6765\u521b\u5efa\u7ec4\u4ef6\uff0c\u6bd4\u5982\u5728\u9762\u677f\u7684 items \u5c5e\u6027\u4e2d\uff0c\u5c24\u5176\u662f\u591a\u4e2a\u7ec4\u4ef6\u6216\u9700\u8981\u5199\u8bb8\u591a\u7684 ExtJs \u76f8\u5173\u4ee3\u7801\u65f6\u5c31\u66f4\u503c\u5f97\u63a8\u8350\u3002\u6211\u4eec\u6765\u5bf9\u7167\u5982\u4e0b\u5f62\u5f0f\u5c31\u77e5\u9053\u4e86\uff1a<br\/>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-js\" data-lang=\"js\"><span class=\"line\"><span class=\"ln\"> 1<\/span><span class=\"cl\"><span class=\"nx\">items<\/span><span class=\"p\">[<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"ln\"> 2<\/span><span class=\"cl\"> <span class=\"k\">new<\/span> <span class=\"nx\">Ext<\/span><span class=\"p\">.<\/span><span class=\"nx\">form<\/span><span class=\"p\">.<\/span><span class=\"nx\">TextField<\/span><span class=\"p\">({<\/span><span class=\"nx\">fieldLabel<\/span><span class=\"o\">:<\/span><span class=\"s1\">&#39;\u59d3\u540d&#39;<\/span><span class=\"p\">,<\/span> <span class=\"nx\">id<\/span><span class=\"o\">:<\/span><span class=\"s1\">&#39;name&#39;<\/span><span class=\"p\">,<\/span> <span class=\"nx\">width<\/span><span class=\"o\">:<\/span><span class=\"mi\">120<\/span><span class=\"p\">}),<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"ln\"> 3<\/span><span class=\"cl\"> <span class=\"k\">new<\/span> <span class=\"nx\">Ext<\/span><span class=\"p\">.<\/span><span class=\"nx\">form<\/span><span class=\"p\">.<\/span><span class=\"nx\">TextField<\/span><span class=\"p\">({<\/span><span class=\"nx\">fieldLabel<\/span><span class=\"o\">:<\/span><span class=\"s1\">&#39;\u5bc6\u7801&#39;<\/span><span class=\"p\">,<\/span> <span class=\"nx\">id<\/span><span class=\"o\">:<\/span><span class=\"s1\">&#39;passwd&#39;<\/span><span class=\"p\">,<\/span> <span class=\"nx\">inputType<\/span><span class=\"o\">:<\/span><span class=\"s1\">&#39;password&#39;<\/span><span class=\"p\">,<\/span> <span class=\"nx\">width<\/span><span class=\"o\">:<\/span><span class=\"mi\">120<\/span><span class=\"p\">}),<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"ln\"> 4<\/span><span class=\"cl\"> <span class=\"k\">new<\/span> <span class=\"nx\">Ext<\/span><span class=\"p\">.<\/span><span class=\"nx\">form<\/span><span class=\"p\">.<\/span><span class=\"nx\">DateField<\/span><span class=\"p\">({<\/span><span class=\"nx\">fieldLabel<\/span><span class=\"o\">:<\/span><span class=\"s1\">&#39;\u751f\u65e5&#39;<\/span><span class=\"p\">,<\/span> <span class=\"nx\">id<\/span><span class=\"o\">:<\/span><span class=\"s1\">&#39;birth&#39;<\/span><span class=\"p\">,<\/span> <span class=\"nx\">format<\/span><span class=\"o\">:<\/span><span class=\"s1\">&#39;Y\u5e74m\u6708d\u65e5&#39;<\/span><span class=\"p\">,<\/span> <span class=\"nx\">width<\/span><span class=\"o\">:<\/span><span class=\"mi\">120<\/span><span class=\"p\">})<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"ln\"> 5<\/span><span class=\"cl\"><span class=\"p\">]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"ln\"> 6<\/span><span class=\"cl\"><span class=\"c1\">\/\/\u66ff\u6362\u6210\u7528 xtype \u5199\u6cd5\u5c31\u5982\u4e0b(\u4f3c\u4e4e\u53ea\u662f\u514d\u53bb\u4e86\u5f88\u591a\u7684 new ...)\n<\/span><\/span><\/span><span class=\"line\"><span class=\"ln\"> 7<\/span><span class=\"cl\"><span class=\"nx\">items<\/span><span class=\"p\">[<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"ln\"> 8<\/span><span class=\"cl\"> <span class=\"p\">{<\/span><span class=\"nx\">xtype<\/span><span class=\"o\">:<\/span><span class=\"s1\">&#39;textfield&#39;<\/span><span class=\"p\">,<\/span> <span class=\"nx\">fieldLabel<\/span><span class=\"o\">:<\/span><span class=\"s1\">&#39;\u59d3\u540d&#39;<\/span><span class=\"p\">,<\/span> <span class=\"nx\">id<\/span><span class=\"o\">:<\/span><span class=\"s1\">&#39;name&#39;<\/span><span class=\"p\">,<\/span> <span class=\"nx\">width<\/span><span class=\"o\">:<\/span><span class=\"mi\">120<\/span><span class=\"p\">},<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"ln\"> 9<\/span><span class=\"cl\"> <span class=\"p\">{<\/span><span class=\"nx\">xtype<\/span><span class=\"o\">:<\/span><span class=\"s1\">&#39;textfield&#39;<\/span><span class=\"p\">,<\/span> <span class=\"nx\">fieldLabel<\/span><span class=\"o\">:<\/span><span class=\"s1\">&#39;\u5bc6\u7801&#39;<\/span><span class=\"p\">,<\/span> <span class=\"nx\">id<\/span><span class=\"o\">:<\/span><span class=\"s1\">&#39;passwd&#39;<\/span><span class=\"p\">,<\/span> <span class=\"nx\">inputType<\/span><span class=\"o\">:<\/span><span class=\"s1\">&#39;password&#39;<\/span><span class=\"p\">,<\/span> <span class=\"nx\">width<\/span><span class=\"o\">:<\/span><span class=\"mi\">120<\/span><span class=\"p\">},<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"ln\">10<\/span><span class=\"cl\"> <span class=\"p\">{<\/span><span class=\"nx\">xtype<\/span><span class=\"o\">:<\/span><span class=\"s1\">&#39;datefield&#39;<\/span><span class=\"p\">,<\/span> <span class=\"nx\">fieldLabel<\/span><span class=\"o\">:<\/span><span class=\"s1\">&#39;\u751f\u65e5&#39;<\/span><span class=\"p\">,<\/span> <span class=\"nx\">id<\/span><span class=\"o\">:<\/span><span class=\"s1\">&#39;birth&#39;<\/span><span class=\"p\">,<\/span> <span class=\"nx\">format<\/span><span class=\"o\">:<\/span><span class=\"s1\">&#39;Y\u5e74m\u6708d\u65e5&#39;<\/span><span class=\"p\">,<\/span> <span class=\"nx\">width<\/span><span class=\"o\">:<\/span><span class=\"mi\">120<\/span><span class=\"p\">}<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"ln\">11<\/span><span class=\"cl\"><span class=\"p\">]<\/span><\/span><\/span><\/code><\/pre><\/div>"},{"title":"\u521b\u5efa\u517c\u5bb9 IE\/FireFox \u7684 event \u53ca event \u7684 srcElement\u3001fromElement\u3001toElement \u5c5e\u6027","link":"https:\/\/yanbin.blog\/ie-firefox-event-srcelement-fromelement-toelement\/","pubDate":"Fri, 10 Jul 2009 06:49:00 -0500","author":"yabqiu@gmail.com (Yanbin Qiu)","guid":"https:\/\/yanbin.blog\/ie-firefox-event-srcelement-fromelement-toelement\/","description":"\n\u81ea\u7136\uff0c\u6211\u4eec\u90fd\u4e60\u60ef\u4e86 IE\uff0c\u5728 IE \u4e2d\u8981\u5728\u51fd\u6570\u4e2d\u83b7\u5f97\u5404\u4e8b\u4ef6\u5bf9\u8c61\u5f88\u5bb9\u6613\uff0c\u76f4\u63a5\u7528 event\u3001event.srcElemtn\u3001event.fromElement\u3001event.toElement \u5c31\u884c\u4e86\u3002\u5728 FireFox \u4e2d\u83b7\u5f97\u89e6\u53d1\u4e8b\u4ef6\u7684\u5143\u7d20\u53ef\u4ee5\u7528 event.target\uff0c\u4f46\u5176\u4ed6\u4e24\u4e2a fromElement \u548c toElement \u5c31\u8981\u8d39\u4e9b\u5468\u6298\u3002<br\/><br\/>\n\u6240\u4ee5\uff0c\u4e3a\u4e86\u4fdd\u6301\u4e00\u81f4\u7684\u4f7f\u7528\u65b9\u5f0f\uff0c\u4e5f\u4e3a\u4e86\u4fdd\u6301\u539f\u6709\u7684\u4f7f\u7528\u4e60\u60ef\uff0c\u6211\u4eec\u52a0\u5165\u4ee5\u4e0b JS \u4ee3\u7801(\u4ee3\u7801\u6709\u4e9b\u7d27\u51d1\uff0c\u672a\u52a0\u6ce8\u91ca\uff0c\u5e94\u8be5\u5f88\u597d\u7406\u89e3)\uff1a"},{"title":"\u521b\u5efa\u517c\u5bb9 IE\/FireFox \u7684 insertAdjacentHTML \u65b9\u6cd5","link":"https:\/\/yanbin.blog\/ie-firefox-insertadjacenthtml\/","pubDate":"Wed, 08 Jul 2009 21:33:00 -0500","author":"yabqiu@gmail.com (Yanbin Qiu)","guid":"https:\/\/yanbin.blog\/ie-firefox-insertadjacenthtml\/","description":"\n\u5728 IE \u4e2d\u6211\u4eec\u53ef\u4ee5\u7528 insertAdjacentHTML \u5f80\u5143\u7d20\u7684 beforeBegin,beforeEnd,afterBegin,afterEnd \u5904\u7406\u63d2\u5165\u65b0\u5143\u7d20\u3002\u800c\u5728\u975e IE \u4e2d\u6ca1\u6709\u8be5\u65b9\u6cd5\uff0c\u56e0\u800c\u6211\u4eec\u8981\u521b\u9020\u4e00\u4e2a\u517c\u5bb9\u7684 insertHtml \u65b9\u6cd5\u6765\u3002<br\/><br\/>\n\u672c\u65b9\u6cd5\u4ece Ext 2 \u4e2d\u5265\u79bb\u51fa\u6765\u7684\uff0c\u5728 ext-all-debug.js \u4e2d\u6709\u4ee5\u4e0b\u65b9\u6cd5\uff1a<br\/><br\/>\nExt.DomHelper.insertHtml( String where, HTMLElement el, String html ) : HTMLElement<br\/><br\/>\n\u53c2\u6570\u4ecb\u7ecd\uff1a<br\/><br\/>\nwhere\uff1a\u63d2\u5165\u4f4d\u7f6e\u3002\u5305\u62ecbeforeBegin,beforeEnd,afterBegin,afterEnd\u3002<br \/>\nel\uff1a\u7528\u4e8e\u53c2\u7167\u63d2\u5165\u4f4d\u7f6e\u7684html\u5143\u7d20\u5bf9\u8c61<br \/>\nhtml\uff1a\u8981\u63d2\u5165\u7684html\u4ee3\u7801"},{"title":"9 \u4e2a\u57fa\u4e8eJavaScript \u548c CSS \u7684 Web \u56fe\u8868\u6846\u67b6","link":"https:\/\/yanbin.blog\/9-javascript-css-web-chart\/","pubDate":"Mon, 16 Mar 2009 22:04:00 -0500","author":"yabqiu@gmail.com (Yanbin Qiu)","guid":"https:\/\/yanbin.blog\/9-javascript-css-web-chart\/","description":"\njQuery, MooTools, Prototype \u7b49\u4f18\u79c0\u7684 JavaScript \u6846\u67b6\u62e5\u6709\u5404\u79cd\u5f3a\u5927\u7684\u529f\u80fd\uff0c\u5305\u62ec\u7ed8\u5236 Web \u56fe\u8868\uff0c\u4f7f\u7528\u8fd9\u4e9b\u6846\u67b6\u4ee5\u53ca\u76f8\u5e94\u63d2\u4ef6\uff0c\u6211\u4eec\u53ef\u4ee5\u975e\u5e38\u8f7b\u677e\u5730\u5b9e\u73b0\u66f2\u7ebf\u56fe\uff0c\u5706\u997c\u56fe\uff0c\u67f1\u72b6\u56fe\u7b49 Web \u56fe\u8868\u7684\u7ed8\u5236\uff0c\u800c\u4e0d\u5fc5\u8c61\u4ee5\u5f80\u90a3\u6837\u901a\u8fc7\u590d\u6742\u7684 Flash \u6280\u672f\u5b9e\u73b0\u3002<strong>\u672c\u6587\u4ecb\u7ecd\u4e869\u4e2a\u4f18\u79c0\u7684\u57fa\u4e8e JavaScript \u4e0e CSS\u00a0 \u7684 Web \u56fe\u8868\u6846\u67b6\u3002<\/strong><br\/>\n<br\/>\njQuery, MooTools, Prototype \u7b49\u4f18\u79c0\u7684 JavaScript \u6846\u67b6\u62e5\u6709\u5404\u79cd\u5f3a\u5927\u7684\u529f\u80fd\uff0c\u5305\u62ec\u7ed8\u5236 Web \u56fe\u8868\uff0c\u4f7f\u7528\u8fd9\u4e9b\u6846\u67b6\u4ee5\u53ca\u76f8\u5e94\u63d2\u4ef6\uff0c\u6211\u4eec\u53ef\u4ee5\u975e\u5e38\u8f7b\u677e\u5730\u5b9e\u73b0\u66f2\u7ebf\u56fe\uff0c\u5706\u997c\u56fe\uff0c\u67f1\u72b6\u56fe\u7b49 Web \u56fe\u8868\u7684\u7ed8\u5236\uff0c\u800c\u4e0d\u5fc5\u8c61\u4ee5\u5f80\u90a3\u6837\u901a\u8fc7\u590d\u6742\u7684 Flash \u6280\u672f\u5b9e\u73b0\u3002\u672c\u6587\u4ecb\u7ecd\u4e869\u4e2a\u4f18\u79c0\u7684\u57fa\u4e8e JavaScript \u4e0e CSS \u7684 Web \u56fe\u8868\u6846\u67b6\u3002"},{"title":"JavaScript\u9ad8\u7ea7\u57f9\u8bad\uff0d\u81ea\u5b9a\u4e49\u5bf9\u8c61[\u8f6c]","link":"https:\/\/yanbin.blog\/javascript-advanced-training-custom-object\/","pubDate":"Sun, 23 Mar 2008 12:34:00 -0500","author":"yabqiu@gmail.com (Yanbin Qiu)","guid":"https:\/\/yanbin.blog\/javascript-advanced-training-custom-object\/","description":"\n<p><strong><br \/> <span style=\"font-size: large;\">\u4e00\uff0c\u6982\u8ff0<\/span><br \/> <\/strong><\/p>\n<p>\u5728Java\u8bed\u8a00\u4e2d\uff0c\u6211\u4eec\u53ef\u4ee5\u5b9a\u4e49\u81ea\u5df1\u7684\u7c7b\uff0c\u5e76\u6839\u636e\u8fd9\u4e9b\u7c7b\u521b\u5efa\u5bf9\u8c61\u6765\u4f7f\u7528\uff0c\u5728Javascript\u4e2d\uff0c\u6211\u4eec\u4e5f\u53ef\u4ee5\u5b9a\u4e49\u81ea\u5df1\u7684\u7c7b\uff0c\u4f8b\u5982\u5b9a\u4e49User\u7c7b\u3001Hashtable\u7c7b\u7b49\u7b49\u3002<\/p>\n<p>\u76ee\u524d\u5728Javascript\u4e2d\uff0c\u5df2\u7ecf\u5b58\u5728\u4e00\u4e9b\u6807\u51c6\u7684\u7c7b\uff0c\u4f8b\u5982Date\u3001Array\u3001RegExp\u3001String\u3001Math\u3001Number\u7b49\u7b49\uff0c\u8fd9\u4e3a\u6211\u4eec\u7f16\u7a0b\u63d0\u4f9b\u4e86\u8bb8\u591a\u65b9\u4fbf\u3002\u4f46\u5bf9\u4e8e\u590d\u6742\u7684\u5ba2\u6237\u7aef\u7a0b\u5e8f\u800c\u8a00\uff0c\u8fd9\u4e9b\u8fd8\u8fdc\u8fdc\u4e0d\u591f\u3002<\/p>\n<p>\u4e0eJava\u4e0d\u540c\uff0cJava2\u63d0\u4f9b\u7ed9\u6211\u4eec\u7684\u6807\u51c6\u7c7b\u5f88\u591a\uff0c\u57fa\u672c\u4e0a\u6ee1\u8db3\u4e86\u6211\u4eec\u7684\u7f16\u7a0b\u9700\u6c42\uff0c\u4f46\u662fJavascript\u63d0\u4f9b\u7684\u6807\u51c6\u7c7b\u5f88\u5c11\uff0c\u8bb8\u591a\u7f16\u7a0b\u9700\u6c42\u9700\u8981\u6211\u4eec\u81ea\u5df1\u53bb\u5b9e\u73b0\uff0c\n\u4f8b\u5982Javascript\u6ca1\u6709\u54c8\u897f\u8868Hashtable\uff0c\u8fd9\u6837\u7684\u8bdd\u5728\u5904\u7406\u952e\u503c\u65b9\u9762\u5c31\u5f88\u4e0d\u65b9\u4fbf\u3002<\/p>\n<p>\u56e0\u6b64\uff0c\u6211\u4e2a\u4eba\u8ba4\u4e3a\u4e00\u4e2a\u5b8c\u6574\u7684Javascript\u5bf9\u8c61\u89c6\u56fe\u5e94\u8be5\u5982\u4e0b\uff1a"},{"title":"Javascript\u4e2d\u7684setTimeout\u548csetInterval\u51fd\u6570\u7684\u533a\u522b","link":"https:\/\/yanbin.blog\/javascript-settimeout-setinterval\/","pubDate":"Tue, 04 Jul 2006 12:49:00 -0500","author":"yabqiu@gmail.com (Yanbin Qiu)","guid":"https:\/\/yanbin.blog\/javascript-settimeout-setinterval\/","description":"\n\u4ece\u51e0\u5e74\u524d(\u67095\u5e74\u591a)\u4e00\u76f4\u5230\u73b0\u5728\uff0c\u5728\u5f88\u591a\u8bb2\u89e3Javascript\u7684\u8d44\u6599\u4e2d\u770b\u8fc7setTimeout\u548csetInterval\u8fd9\u4e24\u4e2a\u51fd\u6570\uff0c\u4e00\u76f4\u5c31\u662f\u4ee5\u4e3a\u5b83\u4eec\u4fe9\u7684\u529f\u80fd\u662f\u5b8c\u5168\u4e00\u6837\u7684\uff0d\uff0d\u5c31\u662f\u591a\u4e45\u65f6\u95f4\u540e\u6267\u884c\u4e00\u4e0b\u4e86\u4e8b\uff0c\u6240\u4ee5\u4e00\u76f4\u7528\u7684\u5c31\u662fsetTimeout\u51fd\u6570\uff0c\u8fd8\u4ece\u6765\u5728\u81ea\u5df1\u7684\u4ee3\u7801\u4e2d\u6ca1\u7528\u8fc7setInterval\u51fd\u6570\uff0c\u5176\u5b9e\u4e3a\u4ec0\u4e48\u5c31\u4e0d\u518d\u8fdb\u4e00\u6b65\u60f3\u60f3\uff0c\u5982\u679c\u8fd9\u4e24\u4e2a\u51fd\u6570\u529f\u80fd\u5b8c\u5168\u4e00\u6837\uff0c\u4e3a\u5565\u6709\u5b58\u5728\u7684\u5408\u7406\u6027\u3002<\/p>\n<br\/>\n\u5230\u73b0\u5728\u6211\u624d\u5bf9\u4e24\u4e2a\u51fd\u6570\u7684\u4e00\u81f4\u6027\u8868\u73b0\u51fa\u60ef\u4e8e\u6000\u7591\u6765\uff0c\u5230\u7f51\u4e0aGoogle\u4e00\u4e0b\uff0c\u624d\u604d\u7136\u5927\u609f\u3002\u539f\u6765\u662f\u6709\u533a\u522b\u7684\uff0c\u9996\u5148\u4ece\u5176\u4e2d\u7684\u4e24\u4e2a\u5355\u8bcd\u6765\u7406\u89e3\u4e5f\u53ef\u4ee5\u770b\u51fa\u4e00\u70b9\u540d\u5802\u6765\uff1a<br\/><br\/>\nTimeout\uff1a&lt;\u4e3b\u7f8e&gt;(\u7403\u7c7b\u6bd4\u8d5b\u4e2d\u7684)\u6682\u65f6\u4f11\u606f,(\u5de5\u4f5c\u65f6\u7684)\u5de5\u95f4\u4f11\u606f\uff1b\u8ba1\u7b97\u673a\u91cc\u591a\u4e3a\"\u8d85\u65f6\"\uff0c\u6216\u8005\"\u65f6\u95f4\u5230\u4e86\"\u7684\u610f\u601d"},{"title":"JavaScript\uff1a\u4e16\u754c\u4e0a\u8bef\u89e3\u6700\u6df1\u7684\u8bed\u8a00 [\u8f6c]","link":"https:\/\/yanbin.blog\/deeply-misunderstand-javascrip\/","pubDate":"Wed, 21 Jun 2006 00:31:00 -0500","author":"yabqiu@gmail.com (Yanbin Qiu)","guid":"https:\/\/yanbin.blog\/deeply-misunderstand-javascrip\/","description":"\n<a href=\"http:\/\/www.crockford.com\/javascript\">JavaScript<\/a>, aka Mocha, aka LiveScript, aka JScript, aka ECMAScript, is one of the world's most popular programming languages. Virtually every personal computer in the world has at least one JavaScript interpreter installed on it and in active use. JavaScript's popularity is due entirely to its role as the scripting language of the WWW.<br\/>\n<br\/>\n<a href=\"http:\/\/www.crockford.com\/javascript\">JavaScript<\/a>\uff0c\u6216\u8005\u53eb Mocha\uff0c\u6216\u8005\u53eb LiveScript\uff0c\u6216\u8005\u53eb JScript\uff0c\u53c8\u6216\u8005\u53eb ECMAScript\uff0c\u662f\u4e16\u754c\u4e0a\u6700\u6d41\u884c\u7684\u7f16\u7a0b\u8bed\u8a00\u4e4b\u4e00\u3002\u4e8b\u5b9e\u4e0a\u4e16\u754c\u4e0a\u7684\u6bcf\u4e00\u53f0\u4e2a\u4eba\u7535\u8111\u90fd\u5b89\u88c5\u5e76\u5728\u9891\u7e41\u4f7f\u7528\u81f3\u5c11\u4e00\u4e2aJavaScript\u89e3\u91ca\u5668\u3002JavaScript\u7684\u6d41\u884c\u5b8c\u5168\u662f\u7531\u4e8e\u4ed6\u5728WWW\u811a\u672c\u8bed\u8a00\u9886\u57df\u4e2d\u7684\u5730\u4f4d\u51b3\u5b9a\u7684\u3002"},{"title":"\u4ee5\u4e00\u4e2a\u6700\u7b80\u5355\u7684\u4f8b\u5b50\u628aOO\u7684JavaScript\u8bf4\u660e\u767d[\u8f6c]","link":"https:\/\/yanbin.blog\/simple-oo-javascript-sample\/","pubDate":"Wed, 21 Jun 2006 00:17:00 -0500","author":"yabqiu@gmail.com (Yanbin Qiu)","guid":"https:\/\/yanbin.blog\/simple-oo-javascript-sample\/","description":"\n\u4ee5\u4e00\u4e2a\u6700\u7b80\u5355\u7684\u4f8b\u5b50\u628aOO\u7684JavaScript\u8bf4\u660e\u767d OO\u7684JavaScript\u5e76\u4e0d\u9ad8\u6df1\uff0c\u9ebb\u70e6\u5c31\u9ebb\u70e6\u5728google\u51fa\u6765\u7684\u56fd\u4eba\u4ecb\u7ecd\u6587\u7ae0\u7ecf\u5e38\u7f57\u7f57\u55e6\u55e6\uff0c\u800c\u4e14\u4e4b\u95f4\u7684\u8bf4\u6cd5\u8fd8\u5404\u6709\u4e0d\u540c\uff0c\u6446\u5728\u4e00\u8d77\u5c31\u8ba9\u4eba\u770b\u4e86\u5934\u5927\u3002<br \/>\n\u8fd9\u91cc\u91cd\u62fe\u7b80\u5355\u4e3b\u4e49\uff0c\u4ee5\u4e00\u4e2a\u6700\u7b80\u5355\u7684\u4f8b\u5b50\u628aOO Javascript\u8bf4\u660e\u767d\u3002<\/p>\n<br\/>\n<strong>1.\u4e00\u4e2a\u9887\u4e3a\u7cbe\u7b80\u7684\u4f8b\u5b50<\/strong><br\/><br\/>\n\u53ea\u9700\u7406\u89e3\u4e09\u4e2a\u5173\u952e\u5b57:<br \/>\n\u7b2c\u4e00\u4e2a\u662ffunction \uff0cJS\u4e16\u754c\u91ccClass\u7684\u5b9a\u4e49\u7528'function'\uff0cfunction\u91cc\u9762\u7684\u5185\u5bb9\u5c31\u662f\u6784\u9020\u51fd\u6570\u7684\u5185\u5bb9\u3002"}]}}