<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>插件 on I'm OWenT</title><link>//owent.net/tags/%E6%8F%92%E4%BB%B6.html</link><description>Recent content in 插件 on I'm OWenT</description><generator>Hugo</generator><language>zh-cn</language><copyright>&lt;a rel="license" href="https://github.com/owent/blog-hugo/blob/master/LICENSE.md"&gt;&lt;img alt="知识共享许可协议" style="border-width:0" src="https://i.creativecommons.org/l/by-nc-sa/4.0/80x15.png" /&gt;&lt;/a&gt;</copyright><lastBuildDate>Tue, 06 May 2014 21:51:58 +0000</lastBuildDate><atom:link href="//owent.net/tags/%E6%8F%92%E4%BB%B6/index.xml" rel="self" type="application/rss+xml"/><item><title>基于Chrome插件的开发工具链</title><link>//owent.net/2014/1054.html</link><pubDate>Tue, 06 May 2014 21:51:58 +0000</pubDate><guid>//owent.net/2014/1054.html</guid><description>&lt;p&gt;在项目开发过程中，时不时会碰上需要使用一些工具来做一些自动操作或者附加功能。特别是有一些外部组件只会提供Web工具，或者如果产品会发布在Web上的时候，在线上的产品中加调试指令显然是不安全的（前段时间刚好有携程线上服务器暴露的调试接口，导致用户信息泄露的事故）。这时候我们就可以借助Chrome来制作一些特别的小工具。 使用Chrome来自作工具有几个好处：其一是对熟悉Web开发的人而言，它用得全是Javascript(当然你也可以用Go语言)和HTML，没有太多额外的学习成本，而且现在的Chrome对HTML5标准支持得也比较好，基本的功能都可以实现；其二是不需要花多少时间在UI方面（作为一个后台开发表示The easier the better）；其三是在需要的时候，还能开发为App，直接运行（另外还有一个项目叫&lt;a href="https://github.com/rogerwang/node-webkit/"&gt;Nodejs-webkit&lt;/a&gt;，提供了打包成不依赖Chrome本地应用的功能，而且底层用了nodejs，提供了更加强大的系统资源访问的功能)。总而言之，作为开发工具而言已经绰绰有余了。&lt;/p&gt;</description></item><item><title>JQuery扩展插件--提示信息</title><link>//owent.net/2010/128.html</link><pubDate>Fri, 19 Nov 2010 15:20:12 +0000</pubDate><guid>//owent.net/2010/128.html</guid><description>&lt;p&gt;学校做项目顺便写的，还是有点用的。&lt;/p&gt;&#10;&lt;pre&gt;&lt;code class="language-js"&gt;/***&#13;&#10; * JQuery扩展插件--提示信息&#13;&#10; *&#13;&#10; * 本函数用于创建提示信息&#13;&#10; *&#13;&#10; * Example&#13;&#10; * &amp;lt;code&amp;gt;&#13;&#10; * var t = $.noticeMessage(msg, a, b);&#13;&#10; * &amp;lt;/code&amp;gt;&#13;&#10; *&#13;&#10; *&#13;&#10; * function noticeMessage([msg, a,b])&#13;&#10; * @Param {&#13;&#10; * msg: 信息内容(默认: Notice Message!)&#13;&#10; * a: 配置选项({expire: 过期时间（默认5秒）, time: 过渡时间, from: {起始CSS样式}, to:{最终CSS样式}})&#13;&#10; * b: 回调函数&#13;&#10; * }&#13;&#10; * @Return {jQuery(msgDiv): 产生的信息DOM组件的jQuery容器}&#13;&#10; *&#13;&#10; *&#13;&#10; * Example:&#13;&#10; * &amp;lt;code&amp;gt;&#13;&#10; * var t = $.noticeMessage(&amp;#34;Hello World!&amp;#34;);&#13;&#10; * &amp;lt;/code&amp;gt;&#13;&#10; *&#13;&#10; *&#13;&#10; * @Author OWenT&#13;&#10; * @Version 1.0&#13;&#10; * @Link http://www.owent.net&#13;&#10; */&#13;&#10;jQuery.extend({&#13;&#10; noticeMessage: function (msg, a, b) {&#13;&#10; msg = msg || &amp;#34;Notice Message!&amp;#34;;&#13;&#10; var option = { &amp;#34;expire&amp;#34;: 5000, &amp;#34;time&amp;#34;: 500,&#13;&#10; &amp;#34;from&amp;#34;: { &amp;#34;background-color&amp;#34;: &amp;#34;LightGreen&amp;#34;, &amp;#34;opacity&amp;#34;: &amp;#34;0&amp;#34;, &amp;#34;position&amp;#34;: &amp;#34;fixed&amp;#34;, &amp;#34;bottom&amp;#34;: &amp;#34;0px&amp;#34;, &amp;#34;z-index&amp;#34;: &amp;#34;1000&amp;#34;,&#13;&#10; &amp;#34;font-size&amp;#34;: &amp;#34;24px&amp;#34;, &amp;#34;color&amp;#34;: &amp;#34;DarkGreen&amp;#34;, &amp;#34;padding&amp;#34;: &amp;#34;3px&amp;#34;, &amp;#34;font-weight&amp;#34;: &amp;#34;bold&amp;#34;&#13;&#10; },&#13;&#10; &amp;#34;to&amp;#34;: { &amp;#34;opacity&amp;#34;: &amp;#34;1&amp;#34;, &amp;#34;bottom&amp;#34;: &amp;#34;&amp;#43;5px&amp;#34; }&#13;&#10; };&#13;&#10; var callback = function () { };&#13;&#10; if (a &amp;amp;&amp;amp; jQuery.isFunction(a))&#13;&#10; callback = a;&#13;&#10; else {&#13;&#10; a = a || {};&#13;&#10; jQuery.extend(option, a);&#13;&#10; callback = b || function () { };&#13;&#10; }&#13;&#10;&#13;&#10; var msgDiv = document.createElement(&amp;#34;div&amp;#34;);&#13;&#10;&#13;&#10; jQuery(msgDiv).css(option.from).html(msg);&#13;&#10; jQuery(document.body).append(msgDiv);&#13;&#10; jQuery(msgDiv).stop().animate(option.to, option.time, callback);&#13;&#10; if (option.expire &amp;gt; 0) {&#13;&#10; setTimeout(function () {&#13;&#10; if (msgDiv) {&#13;&#10; jQuery(msgDiv).stop().animate({ &amp;#34;opacity&amp;#34;: &amp;#34;0&amp;#34;, &amp;#34;bottom&amp;#34;: &amp;#34;-5px&amp;#34; }, option.time,&#13;&#10; function () { callback(); jQuery(this).remove(); });&#13;&#10; }&#13;&#10; }, option.expire);&#13;&#10; }&#13;&#10; return jQuery(msgDiv);&#13;&#10; }&#13;&#10;});&lt;/code&gt;&lt;/pre&gt;&#13;&#10;&lt;p&gt;写在最后补充一下，这个动机基本没什么用了&lt;/p&gt;</description></item></channel></rss>