﻿<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>JSSAY&#039;S BLOG &#187; Javascript</title>
	<atom:link href="http://www.jssay.com/blog/index.php/tag/javascript/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.jssay.com/blog</link>
	<description>关注Java, Linux, 互联网, SEO, Wordpress, Jquery, Web前端</description>
	<lastBuildDate>Fri, 30 Sep 2011 09:13:42 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Javascript的trim函数</title>
		<link>http://www.jssay.com/blog/index.php/2010/07/25/javascript%e7%9a%84trim%e5%87%bd%e6%95%b0/</link>
		<comments>http://www.jssay.com/blog/index.php/2010/07/25/javascript%e7%9a%84trim%e5%87%bd%e6%95%b0/#comments</comments>
		<pubDate>Sun, 25 Jul 2010 02:50:31 +0000</pubDate>
		<dc:creator>jssay</dc:creator>
				<category><![CDATA[程序设计]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[trim函数]]></category>

		<guid isPermaLink="false">http://www.jssay.com/blog/?p=930</guid>
		<description><![CDATA[Java中有一个函数trim()，可以很方便的去除字符串前后的空白，但是很遗憾，Javascript中就没有提供类似的函数，不过不要紧，我们可以自己写一个，一样很强大很好用。]]></description>
			<content:encoded><![CDATA[<p>Java中有一个函数trim()，可以很方便的去除字符串前后的空白，但是很遗憾，Javascript中就没有提供类似的函数，不过不要紧，我们可以自己写一个，一样很强大很好用。</p>
<p>String.prototype.trim = function (){<br />
 return this.replace(/(^\s*)|(\s*$)/g,&#8221;");<br />
};</p>
<p>此函数用到了Javascript中的字符替换函数replace(),它利用正则表达式匹配字符串中的空白符，&#8221;g&#8221;表示全局的意思，可以替换所有与之匹配的字符。^\s*和\s*$分别表示字符串前后空白（包括制表符，空格等）。</p>
<p>使用如下：</p>
<p>var test = &#8221; abcde     &#8220;;<br />
var result = test.trim();<br />
==========================<br />
结果：<br />
result=&#8221;abcde&#8221;</p>
<p>当然，实现此类函数的方法有很多种，但是我认为这个方法应该是最简单和最有效的。不信就试一试吧!
<div style="margin-top: 15px; font-style: italic">
<p><strong>本Blog文章除特别声明之外皆为原创文章，欢迎转载，转载请注明：</strong> 转载自<a href="http://www.jssay.com/blog/">JSSAY&#039;S BLOG</a></p>
<p><strong>本文链接地址:</strong> <a href="http://www.jssay.com/blog/index.php/2010/07/25/javascript%e7%9a%84trim%e5%87%bd%e6%95%b0/">http://www.jssay.com/blog/index.php/2010/07/25/javascript%e7%9a%84trim%e5%87%bd%e6%95%b0/</a></p>
</div>
<p><script type="text/javascript"><!--
google_ad_client = "pub-2870579454529881";
/* 页脚，468x60的广告 */
google_ad_slot = "6663520172";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script><br />
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>
<h2  class="related_post_title">相关文章</h2><ul class="related_post"><li>2010年05月24日 -- <a href="http://www.jssay.com/blog/index.php/2010/05/24/js%e4%b8%ad%e9%87%8d%e5%86%99alert%e5%87%bd%e6%95%b0%e8%bd%ac/" title="Js中重写alert函数(转)">Js中重写alert函数(转)</a></li><li>2009年11月19日 -- <a href="http://www.jssay.com/blog/index.php/2009/11/19/recommendation-9-great-charting-page-script-javascript-framework/" title="推荐9款很棒的网页绘制图表JavaScript框架脚本">推荐9款很棒的网页绘制图表JavaScript框架脚本</a></li><li>2009年10月18日 -- <a href="http://www.jssay.com/blog/index.php/2009/10/18/qq%e5%ae%a2%e6%9c%8d%e5%88%97%e8%a1%a8%e7%9a%84%e5%88%b6%e4%bd%9c/" title="QQ客服列表的制作">QQ客服列表的制作</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.jssay.com/blog/index.php/2010/07/25/javascript%e7%9a%84trim%e5%87%bd%e6%95%b0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Js中重写alert函数(转)</title>
		<link>http://www.jssay.com/blog/index.php/2010/05/24/js%e4%b8%ad%e9%87%8d%e5%86%99alert%e5%87%bd%e6%95%b0%e8%bd%ac/</link>
		<comments>http://www.jssay.com/blog/index.php/2010/05/24/js%e4%b8%ad%e9%87%8d%e5%86%99alert%e5%87%bd%e6%95%b0%e8%bd%ac/#comments</comments>
		<pubDate>Mon, 24 May 2010 14:38:38 +0000</pubDate>
		<dc:creator>jssay</dc:creator>
				<category><![CDATA[程序设计]]></category>
		<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://www.jssay.com/blog/?p=896</guid>
		<description><![CDATA[以下代码来自网上
步骤一：在"Common/js/"下创建js文件SysMsgBox.js]]></description>
			<content:encoded><![CDATA[<p>以下代码来自网上<br />
步骤一：在&#8221;Common/js/&#8221;下创建js文件SysMsgBox.js<br />
// JScript 文件</p>
<p>var alternateFrame=null;//生成的iframe<br />
var alternateWin=null;</p>
<p>window.alert=showAlert;<br />
window.confirm=showConfirm;</p>
<p>/**<br />
 * 人机交互窗口，覆盖自带的<br />
 */<br />
function alternateWindow(){<br />
this.win=null;//生成对话框的窗口对象<br />
this.pBody=null;//生成的body容器对象<br />
this.pBg=null;<br />
this.type=&#8221;alert&#8221;;//默认的种类是alert<br />
this.FocusWhere=&#8221;OK&#8221;;//焦点在哪个按钮上<br />
}<br />
/**<br />
 * 模仿的alert窗口<br />
 */<br />
function showAlert(info){<br />
alternateWin=new alternateWindow();<br />
var pBody = alternateWin.init();<br />
alternateWin.initAlertBody(pBody,info);<br />
alternateWin.type=&#8221;alert&#8221;;<br />
}<br />
  /**<br />
 * 模仿的alert窗口<br />
 */<br />
function showConfirm(info,ok_func,notok_func,ok_str,not_okstr){<br />
alternateWin=new alternateWindow();<br />
var pBody = alternateWin.init();<br />
alternateWin.initConfirmBody(pBody,info,ok_func,notok_func,ok_str,not_okstr);<br />
alternateWin.type=&#8221;confirm&#8221;;<br />
}<br />
/**<br />
 * 作用：初始基本信息<br />
 */<br />
alternateWindow.prototype.init=function() {<br />
if(alternateFrame==null){<br />
alternateFrame=document.createElement(&#8221;<iframe allowTransparency='true' id='popframe' frameborder=0 marginheight=0 src='about:blank' marginwidth=0 hspace=0 vspace=0 scrolling=no></iframe>&#8220;)<br />
alternateFrame.style.position=&#8221;absolute&#8221;;<br />
document.body.appendChild(alternateFrame);<br />
}else{<br />
alternateFrame.style.visibility=&#8221;visible&#8221;;<br />
}<br />
alternateFrame.style.width=screen.availWidth;<br />
alternateFrame.style.height=screen.availHeight;<br />
alternateFrame.style.left=document.body.scrollLeft;<br />
alternateFrame.style.top=document.body.scrollTop;<br />
alternateFrame.name=alternateFrame.uniqueID;</p>
<p>this.win=window.frames[alternateFrame.name];<br />
this.win.document.write(&#8221;<body leftmargin=0 topmargin=0 oncontextmenu='self.event.returnValue=false'>
<div id=popbg></div>
<div id=popbody></div>
<div></div>
<p></body>&#8220;);<br />
this.win.document.body.style.backgroundColor=&#8221;transparent&#8221;;<br />
document.body.style.overflow=&#8221;hidden&#8221;;<br />
this.pBody=this.win.document.body.children[1];<br />
this.pBg=this.win.document.body.children[0];<br />
this.hideAllSelect();<br />
this.initBg();</p>
<p>return this.pBody;<br />
}</p>
<p> /**<br />
* 作用：初始化背景层<br />
  */<br />
alternateWindow.prototype.initBg=function(){<br />
with(this.pBg.style){<br />
position=&#8221;absolute&#8221;;<br />
left=&#8221;0&#8243;;<br />
top=&#8221;0&#8243;;<br />
width=&#8221;100%&#8221;;<br />
height=&#8221;100%&#8221;;<br />
visibility=&#8221;hidden&#8221;;<br />
backgroundColor=&#8221;#333333&#8243;;<br />
filter=&#8221;blendTrans(duration=1) alpha(opacity=30)&#8221;;<br />
}<br />
this.pBg.filters.blendTrans.apply();<br />
this.pBg.style.visibility=&#8221;visible&#8221;;<br />
this.pBg.filters.blendTrans.play();<br />
}<br />
/**<br />
 * 作用：初始化显示层<br />
 */<br />
alternateWindow.prototype.initAlertBody=function(obj,info){<br />
with(obj.style){<br />
position=&#8221;absolute&#8221;;<br />
width=&#8221;400&#8243;;<br />
height=&#8221;150&#8243;;<br />
backgroundColor=&#8221;#ffffff&#8221;;<br />
}<br />
obj.style.left=window.document.body.clientWidth/2-200;<br />
obj.style.top=window.document.body.clientHeight/3;<br />
var str;<br />
str =&#8221;<br />
<table border=0 cellpadding=0 cellspacing=1 bgcolor=#000000 width=100% height=100%>
<tr height=30>&#8220;;<br />
str+=&#8221;
<td align=left style='color:#000000;font-size:14px;font-weight:bold' bgcolor=#9999ff>[提示]</td>
</tr>
<p>&#8220;;<br />
str+=&#8221;<br />
<tr>
<td align=center bgcolor=#efefff style='font-size:12px;color:#000000;vertical-align: middle;'>&#8220;;<br />
str+=info+&#8221;</td>
</tr>
<tr height=30 bgcolor=#efefef>
<td align=center>&#8221; +<br />
     &#8220;<br />
<input type='button' value='确定' id='OK'" +<br />
     " onkeydown='parent.alternateWin.onKeyDown(event,this)'"+<br />
     " onclick='parent.alternateWin.closeWin()' style='border:solid 1px #666666;background:#cccccc'>&#8221; +<br />
     &#8220;</td>
</tr>
</table>
<p>&#8220;;<br />
obj.innerHTML=str;<br />
this.win.document.body.all.OK.focus();<br />
this.FocusWhere=&#8221;OK&#8221;;<br />
}</p>
<p>alternateWindow.prototype.onKeyDown=function(event,obj){<br />
  switch(event.keyCode){<br />
  case 9:<br />
   event.keyCode=-1;<br />
  if(this.type==&#8221;confirm&#8221;){<br />
  if(this.FocusWhere==&#8221;OK&#8221;){<br />
  this.win.document.body.all.NO.focus();<br />
  this.FocusWhere=&#8221;NO&#8221;;<br />
  }else{<br />
  this.win.document.body.all.OK.focus();<br />
  this.FocusWhere=&#8221;OK&#8221;;<br />
  }<br />
  }<br />
  break;<br />
  case 13:obj.click();;break;<br />
  case 27:this.closeWin();break;<br />
  }</p>
<p>  }<br />
/**<br />
 * 作用：初始化显示层 conFirm提示层<br />
 */<br />
alternateWindow.prototype.initConfirmBody=function(obj,info,ok_func,notok_func,ok_str,notok_str){<br />
with(obj.style){<br />
position=&#8221;absolute&#8221;;<br />
width=&#8221;400&#8243;;<br />
height=&#8221;150&#8243;;<br />
backgroundColor=&#8221;#ffffff&#8221;;<br />
}<br />
if(ok_str==null){<br />
ok_str=&#8221;确定&#8221;;<br />
}<br />
if(notok_str==null){<br />
notok_str=&#8221;取消&#8221;<br />
}<br />
obj.style.left=window.document.body.clientWidth/2-200;<br />
obj.style.top=window.document.body.clientHeight/3;<br />
var str;<br />
str=&#8221;<br />
<table border=0 cellpadding=0 cellspacing=1 bgcolor=#000000 width=100% height=100%>
<tr height=30>&#8220;;<br />
str+=&#8221;
<td align=left style='color:#000000;font-size:14px;font-weight:bold' bgcolor=#9999ff>[询问]</td>
</tr>
<p>&#8220;;<br />
str+=&#8221;<br />
<tr>
<td align=center bgcolor=#efefff style='font-size:12px;color:#000000;vertical-align: middle;'>&#8220;;<br />
str+=info+&#8221;</td>
</tr>
<tr height=30 bgcolor=#efefef>
<td align=center>&#8221; +<br />
&#8220;<br />
<input type='button' id='OK'" +<br />
" onkeydown='parent.alternateWin.onKeyDown(event,this)'"+<br />
" onclick='parent.alternateWin.closeWin();parent."+ok_func+"();' " +<br />
" value='"+ok_str+"' style='border:solid 1px #666666;background:#cccccc'>&#8220;+<br />
&#8220;&nbsp;&nbsp;&nbsp;<br />
<input type='button' value='"+notok_str+"' id='NO'"+<br />
" onkeydown='parent.alternateWin.onKeyDown(event,this)'"+<br />
" onclick='parent.alternateWin.closeWin();" +<br />
" parent."+notok_func+"();' style='border:solid 1px #666666;background:#cccccc'></td>
</tr>
</table>
<p>&#8220;;<br />
obj.innerHTML=str;<br />
this.win.document.body.all.OK.focus();<br />
}</p>
<p>/**<br />
 * 作用：关闭一切<br />
 */<br />
alternateWindow.prototype.closeWin=function(){<br />
alternateFrame.style.visibility=&#8221;hidden&#8221;;<br />
this.showAllSelect();<br />
document.body.style.overflow=&#8221;auto&#8221;;<br />
}<br />
/**<br />
  * 作用:隐藏所有的select<br />
  */<br />
alternateWindow.prototype.hideAllSelect=function(){<br />
  var obj;<br />
  obj=document.getElementsByTagName(&#8221;SELECT&#8221;);<br />
  var i;<br />
  for(i=0;i<obj.length;i++)<br />
obj[i].style.visibility="hidden";<br />
  }<br />
/**<br />
 * 显示所有的select<br />
 */<br />
  alternateWindow.prototype.showAllSelect=function(){<br />
  var obj;<br />
  obj=document.getElementsByTagName("SELECT");<br />
  var i;<br />
  for(i=0;i<obj.length;i++)<br />
obj[i].style.visibility="visible";<br />
}<br />
步骤二：在程序页面上引用该脚本，直接使用alert和confirm函数。<br />
<html xmlns="http://www.w3.org/1999/xhtml"><br />
<head runat="server"></p>
<p>    <script language="javascript" src="http://www.cnblogs.com/Common/JS/SysMsgBox.js"></script></p>
<p>    <script language="javascript" type="text/javascript">
      function f_yes()
      {
          alert('提交成功');
      }</p>
<p>      function f_no()
      {
          return ;
      }
    </script></p>
<p></head><br />
<body></p>
<form id="form1" runat="server">
<div>
            <button onclick="confirm('确认提交？','f_yes','f_no','是','否')"><br />
                提示</button><br />
            <button onclick="alert('hello!')"><br />
                hello!</button>
        </div>
</p></form>
<p></body><br />
</html>
<div style="margin-top: 15px; font-style: italic">
<p><strong>本Blog文章除特别声明之外皆为原创文章，欢迎转载，转载请注明：</strong> 转载自<a href="http://www.jssay.com/blog/">JSSAY&#039;S BLOG</a></p>
<p><strong>本文链接地址:</strong> <a href="http://www.jssay.com/blog/index.php/2010/05/24/js%e4%b8%ad%e9%87%8d%e5%86%99alert%e5%87%bd%e6%95%b0%e8%bd%ac/">http://www.jssay.com/blog/index.php/2010/05/24/js%e4%b8%ad%e9%87%8d%e5%86%99alert%e5%87%bd%e6%95%b0%e8%bd%ac/</a></p>
</div>
<p><script type="text/javascript"><!--
google_ad_client = "pub-2870579454529881";
/* 页脚，468x60的广告 */
google_ad_slot = "6663520172";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script><br />
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>
<h2  class="related_post_title">相关文章</h2><ul class="related_post"><li>2010年07月25日 -- <a href="http://www.jssay.com/blog/index.php/2010/07/25/javascript%e7%9a%84trim%e5%87%bd%e6%95%b0/" title="Javascript的trim函数">Javascript的trim函数</a></li><li>2009年11月19日 -- <a href="http://www.jssay.com/blog/index.php/2009/11/19/recommendation-9-great-charting-page-script-javascript-framework/" title="推荐9款很棒的网页绘制图表JavaScript框架脚本">推荐9款很棒的网页绘制图表JavaScript框架脚本</a></li><li>2009年10月18日 -- <a href="http://www.jssay.com/blog/index.php/2009/10/18/qq%e5%ae%a2%e6%9c%8d%e5%88%97%e8%a1%a8%e7%9a%84%e5%88%b6%e4%bd%9c/" title="QQ客服列表的制作">QQ客服列表的制作</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.jssay.com/blog/index.php/2010/05/24/js%e4%b8%ad%e9%87%8d%e5%86%99alert%e5%87%bd%e6%95%b0%e8%bd%ac/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>推荐9款很棒的网页绘制图表JavaScript框架脚本</title>
		<link>http://www.jssay.com/blog/index.php/2009/11/19/recommendation-9-great-charting-page-script-javascript-framework/</link>
		<comments>http://www.jssay.com/blog/index.php/2009/11/19/recommendation-9-great-charting-page-script-javascript-framework/#comments</comments>
		<pubDate>Thu, 19 Nov 2009 05:56:24 +0000</pubDate>
		<dc:creator>jssay</dc:creator>
				<category><![CDATA[WEB前端]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Javascript plot]]></category>
		<category><![CDATA[用JS绘制图表]]></category>

		<guid isPermaLink="false">http://www.jssay.com/blog/?p=453</guid>
		<description><![CDATA[今天彬Go要向大家推荐9款很棒的可在网页中绘制图表的JavaScript脚本，这些有趣的JS脚本可以帮助你快速方便的绘制图表（线、面、饼、条…），其中包括jQuery、MooTools、Prototype和一些其它的JavaScript框架。]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.bingo929.com/useful-javascript-plot-charts-web.html"><img title="Javascript-框架-图表" src="http://blog.bingo929.com/wp-content/uploads/2009/04/title.jpg" alt="Javascript-框架-图表" width="500" height="150" /></a></p>
<p>今天彬Go要向大家推荐9款很棒的可在网页中绘制图表的<a href="http://blog.bingo929.com/category/technology/javascript">JavaScript</a>脚本，这些有趣的JS脚本可以帮助你快速方便的绘制图表（线、面、饼、条…），其中包括jQuery、MooTools、Prototype和一些其它的JavaScript框架。</p>
<p><strong><span style="COLOR: #ff6600">您还可以参考以下JavaScript/CSS相关教程及资源:</span><br />
</strong>《<a title="10个非常棒的Ajax及Javascript实例资源网站" href="http://www.jssay.com/blog/10-sources-ajax-javascript.html">10个非常棒的Ajax及Javascript实例资源网站</a>》<br />
《<a href="http://blog.bingo929.com/30-css-tec-examples.html" target="_blank">精选30个优秀的CSS技术和实例</a>》<br />
《<a title="300+Jquery, CSS, MooTools 和 JS的导航菜单资源" href="http://www.jssay.com/blog/300-jquery-css-mootools-js-navigation-menus.html">300+Jquery, CSS, MooTools 和 JS的导航菜单资源</a>》</p>
<h3>1.<a href="http://code.google.com/p/flot/" target="_blank">Flot</a></h3>
<p><img title="javascript-图表框架" src="http://blog.bingo929.com/wp-content/uploads/2009/04/javascript-chart-01.png" alt="javascript-图表框架" width="500" height="200" /></p>
<p><a href="http://code.google.com/p/flot/" target="_blank">Flot</a>是基于jQuery框架绘制图表的纯Javascript框架。它可在客户端即时绘制并生成各种图形。重要的是它使用简便（还有很多可选的设置）、吸引人的视觉效果和交互功能，如图表缩放和鼠标跟踪等。该javascript框架适用于我们所熟知的 Internet Explorer 6/7/8, Firefox 2.x+, Safari 3.0+, Opera 9.5+ and Konqueror 4.x+浏览器。<a href="http://people.iola.dk/olau/flot/examples/" target="_blank"> 查看图表样例</a></p>
<h3>2.<a href="http://www.jscharts.com/" target="_blank">JS Charts</a></h3>
<p><a href="http://www.jscharts.com/" target="_blank"><img title="javascript-图表框架" src="http://blog.bingo929.com/wp-content/uploads/2009/04/javascript-chart-02.png" alt="javascript-图表框架" width="500" height="200" /><br />
</a></p>
<p><a href="http://www.jscharts.com/" target="_blank">JS Chart</a>是需要一些简单或无需手工书写编码的基于Javascript的免费图表生成器。使用JS Chart可以很简单很容易的完成你的生成图表任务，因为你只需要使用客户端脚本(即浏览器端)，无需多余的插件或服务器端模块。你只需要准备好JS Chart脚本、包含图表数据的XML或Javascript数组，你的图表就准备就绪了。</p>
<h3>3. <a href="http://www.copix.org/index.php/wiki/Mootools/Charts/en" target="_blank">TableToChart</a></h3>
<p><img title="javascript-框架" src="http://blog.bingo929.com/wp-content/uploads/2009/04/javascript-chart-03.png" alt="javascript-框架" width="500" height="200" /></p>
<p><a href="http://www.copix.org/index.php/wiki/Mootools/Charts/en" target="_blank">TableToChart</a> 是基于MooTools JS框架的网页图表生成器，它通过包含在HTML table中的值来绘制图形图表。您可以使用Table标签来生成图表，条、线和饼都可以。</p>
<h3>4.<a href="http://www.liquidx.net/plotkit/" target="_blank">PlotKit</a></h3>
<p><img title="javascript-图表" src="http://blog.bingo929.com/wp-content/uploads/2009/04/javascript-chart-04.png" alt="javascript-图表" width="500" height="200" /></p>
<p><a href="http://www.liquidx.net/plotkit/">PlotKit</a>是一款绘制图表图形的Javascript框架。它支持HTML Canvas、基于Adobe SVG Viewer的SVG和本地浏览器。</p>
<h3>5. <a href="http://developer.yahoo.com/yui/charts/" target="_blank">Yahoo UI Charts Control</a></h3>
<p><img title="javascript-实例" src="http://blog.bingo929.com/wp-content/uploads/2009/04/javascript-chart-051.png" alt="javascript-实例" width="500" height="200" /></p>
<p><a href="http://developer.yahoo.com/yui/charts/" target="_blank">YUI图表管理</a>可以在网页中以垂直条、横条、线、饼等形式可视化呈现图表。主要特色包括支持DataSource、鼠标悬停数据提示、组合图表和皮肤功能。</p>
<h3>6. <a href="http://www.deensoft.com/lab/protochart/" target="_blank">ProtoChart</a></h3>
<p><img title="javascript-图表生成器" src="http://blog.bingo929.com/wp-content/uploads/2009/04/javascript-chart-061.png" alt="javascript-图表生成器" width="500" height="200" /></p>
<p><a href="http://www.deensoft.com/lab/protochart/" target="_blank">ProtoChart</a>是基于Prototype和Canvas可创建非常漂亮图表的开源框架。它支持线、条、饼、曲线、混杂(mix)、面图表等多种数据串联在统一图形中。它支持IE6/7, FF2/3 和 Safari 甚至可以在 iPhone上工作.</p>
<h3>7. <a href="http://www.ejschart.com/">EJSChart</a></h3>
<p><img title="javascript-图表-框架" src="http://blog.bingo929.com/wp-content/uploads/2009/04/javascript-chart-07.png" alt="javascript-图表-框架" width="500" height="200" /></p>
<p><a href="http://www.ejschart.com/" target="_blank">EJSChart</a>支持鼠标跟踪、鼠标事件、键盘跟踪和事件、缩放、滚动、十字线增加交互感并为网页图表的用户体验提升了一个档次。您可以选择多种图表类型：线、面、分散数据、饼和函数级数。图表的每个细节都可以自定制。</p>
<h3>8.<a href="http://www.filamentgroup.com/lab/creating_accessible_charts_using_canvas_and_jquery/" target="_blank">fgCharting</a></h3>
<p><img title="javascript-框架" src="http://blog.bingo929.com/wp-content/uploads/2009/04/javascript-chart-08.png" alt="javascript-框架" width="500" height="200" /></p>
<p><a href="http://www.filamentgroup.com/lab/creating_accessible_charts_using_canvas_and_jquery/" target="_blank">fgCharting</a>是基于jQuery框架的简便图表生成器，它也支持各种图表类型并可以自定义参数。</p>
<h3>9. <a href="http://cssglobe.com/post/1272/pure-css-data-chart" target="_blank">纯Css数据图表</a></h3>
<p><img title="图表-生成器" src="http://blog.bingo929.com/wp-content/uploads/2009/04/javascript-chart-09.png" alt="图表-生成器" width="500" height="200" /></p>
<p>纯CSS代码实现的图表，怎么样，难以置信吧，想知道如何实现的吗？那就来看看这篇<a href="http://cssglobe.com/post/1272/pure-css-data-chart" target="_blank">纯CSS制作图表的教程</a>吧。</p>
<p>英文原文:<a href="http://woork.blogspot.com/2009/03/useful-scripts-to-plot-charts-in-web.html">Useful scripts to plot charts in web pages</a><br />
翻译原文:<a href="http://blog.bingo929.com/useful-javascript-plot-charts-web.html">推荐9款很棒的可在网页中绘制图表的JavaScript脚本</a></p>
<div style="BORDER-RIGHT: #afedff 1px solid; PADDING-RIGHT: 10px; BORDER-TOP: #afedff 1px solid; DISPLAY: block; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; BORDER-LEFT: #afedff 1px solid; PADDING-TOP: 10px; BORDER-BOTTOM: #afedff 1px solid; BACKGROUND-COLOR: #e9faff">原载:<a href="http://www.jssay.com/blog/">彬Go</a>——集前端开发/网页设计/网站可用性/用户体验于一体的趣味互联网生活<br />
原文链接:<a title="推荐9款很棒的可在网页中绘制图表的JavaScript脚本" href="http://blog.bingo929.com/useful-javascript-plot-charts-web.html">http://blog.bingo929.com/useful-javascript-plot-charts-web.html<br />
</a></div>
<div style="margin-top: 15px; font-style: italic">
<p><strong>本Blog文章除特别声明之外皆为原创文章，欢迎转载，转载请注明：</strong> 转载自<a href="http://www.jssay.com/blog/">JSSAY&#039;S BLOG</a></p>
<p><strong>本文链接地址:</strong> <a href="http://www.jssay.com/blog/index.php/2009/11/19/recommendation-9-great-charting-page-script-javascript-framework/">http://www.jssay.com/blog/index.php/2009/11/19/recommendation-9-great-charting-page-script-javascript-framework/</a></p>
</div>
<p><script type="text/javascript"><!--
google_ad_client = "pub-2870579454529881";
/* 页脚，468x60的广告 */
google_ad_slot = "6663520172";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script><br />
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>
<h2  class="related_post_title">相关文章</h2><ul class="related_post"><li>2010年07月25日 -- <a href="http://www.jssay.com/blog/index.php/2010/07/25/javascript%e7%9a%84trim%e5%87%bd%e6%95%b0/" title="Javascript的trim函数">Javascript的trim函数</a></li><li>2010年05月24日 -- <a href="http://www.jssay.com/blog/index.php/2010/05/24/js%e4%b8%ad%e9%87%8d%e5%86%99alert%e5%87%bd%e6%95%b0%e8%bd%ac/" title="Js中重写alert函数(转)">Js中重写alert函数(转)</a></li><li>2009年10月18日 -- <a href="http://www.jssay.com/blog/index.php/2009/10/18/qq%e5%ae%a2%e6%9c%8d%e5%88%97%e8%a1%a8%e7%9a%84%e5%88%b6%e4%bd%9c/" title="QQ客服列表的制作">QQ客服列表的制作</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.jssay.com/blog/index.php/2009/11/19/recommendation-9-great-charting-page-script-javascript-framework/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>QQ客服列表的制作</title>
		<link>http://www.jssay.com/blog/index.php/2009/10/18/qq%e5%ae%a2%e6%9c%8d%e5%88%97%e8%a1%a8%e7%9a%84%e5%88%b6%e4%bd%9c/</link>
		<comments>http://www.jssay.com/blog/index.php/2009/10/18/qq%e5%ae%a2%e6%9c%8d%e5%88%97%e8%a1%a8%e7%9a%84%e5%88%b6%e4%bd%9c/#comments</comments>
		<pubDate>Sun, 18 Oct 2009 15:18:04 +0000</pubDate>
		<dc:creator>jssay</dc:creator>
				<category><![CDATA[WEB前端]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[JQuery]]></category>
		<category><![CDATA[QQ]]></category>

		<guid isPermaLink="false">http://www.jssay.com/blog/?p=121</guid>
		<description><![CDATA[经常在各大网站尤其是培训网站或销售网站看到一个浮动的QQ客服列表，它会在你一开始打开页面的时候弹出，直到你关闭网站为止。这个看起来有点神秘，其实真正做起来并不复杂。请看下面的主要代码...]]></description>
			<content:encoded><![CDATA[<p>经常在各大网站尤其是培训网站或销售网站看到一个浮动的QQ客服列表，它会在你一开始打开页面的时候弹出，直到你关闭网站为止。这个看起来有点神秘，其实真正做起来并不复杂。请看下面的主要代码：</p>
<p><code><br />
function QQClient(id,title){<br />
	this.id = id ;<br />
	this.title = title ;<br />
}<br />
var qq_arr1 = [new QQClient(454364181,"客服01"),<br />
	       new QQClient(154709253,"客服02"),<br />
                    new QQClient(1035227484,"客服03")] ;</p>
<p>var qq_arr2 = [new QQClient(454364181,"技术支持(白)"),<br />
	       new QQClient(154709253,"技术支持(夜)")] ;</p>
<p>var desc="Web应用|Wordpress|外语学习|电脑技术|程序设计|移动开发" ;</p>
<p>$(qq_arr1).each(function(i){<br />
	$(&#34;#qq1 ul&#34;).append(&#34;<br />
&lt;li&gt;&lt;a href='tencent:&#47;&#47;message&#47;?uin=&#34;+qq_arr1[i].id+&#34;&amp;Site=&#34;+desc+&#34;&amp;Menu=yes'&gt;&lt;img src='http:&#47;&#47;wpa.qq.com&#47;pa?p=1:&#34;+qq_arr1[i].id+&#34;:7'alt='点击与&#34;+qq_arr1[i].title+&#34;交谈' &#47;&gt;&lt;&#47;a&gt;&lt;&#47;li&gt;<br />
&#34;);<br />
});<br />
$(qq_arr2).each(function(i){<br />
	$(&#34;#qq2 ul&#34;).append(&#34;&lt;li&gt;&lt;a href='tencent:&#47;&#47;message&#47;?uin=&#34;+qq_arr2[i].id+&#34;&amp;Site=&#34;+desc+&#34;&amp;Menu=yes'&gt;&lt;img src='http:&#47;&#47;wpa.qq.com&#47;pa?p=1:&#34;+qq_arr2[i].id+&#34;:7'alt='点击与&#34;+qq_arr2[i].title+&#34;交谈' &#47;&gt;&lt;&#47;a&gt;&lt;&#47;li&gt;&#34;);<br />
});</p>
<p></code></p>
<p>使用时只要把这段代码放到一个div层里，然后设定他的相对位置就可以了，点击<a href="javascript:void(0);" onclick="javascript:window.open('http://www.jssay.com/demo/qqlist/qqlist.html'); style='cursor:hand;'">这里</a>看Demo。
<div style="margin-top: 15px; font-style: italic">
<p><strong>本Blog文章除特别声明之外皆为原创文章，欢迎转载，转载请注明：</strong> 转载自<a href="http://www.jssay.com/blog/">JSSAY&#039;S BLOG</a></p>
<p><strong>本文链接地址:</strong> <a href="http://www.jssay.com/blog/index.php/2009/10/18/qq%e5%ae%a2%e6%9c%8d%e5%88%97%e8%a1%a8%e7%9a%84%e5%88%b6%e4%bd%9c/">http://www.jssay.com/blog/index.php/2009/10/18/qq%e5%ae%a2%e6%9c%8d%e5%88%97%e8%a1%a8%e7%9a%84%e5%88%b6%e4%bd%9c/</a></p>
</div>
<p><script type="text/javascript"><!--
google_ad_client = "pub-2870579454529881";
/* 页脚，468x60的广告 */
google_ad_slot = "6663520172";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script><br />
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>
<h2  class="related_post_title">相关文章</h2><ul class="related_post"><li>2010年11月3日 -- <a href="http://www.jssay.com/blog/index.php/2010/11/03/qq-vs-360/" title="QQ vs 360">QQ vs 360</a></li><li>2010年10月28日 -- <a href="http://www.jssay.com/blog/index.php/2010/10/28/20-models-of-the-latest-highly-recommend-jquery-plugin/" title="极力推荐20款最新的jQuery插件">极力推荐20款最新的jQuery插件</a></li><li>2010年10月18日 -- <a href="http://www.jssay.com/blog/index.php/2010/10/18/jquery-latest-version-v1-4-3-released/" title="Jquery最新版（V1.4.3）发布">Jquery最新版（V1.4.3）发布</a></li><li>2010年07月25日 -- <a href="http://www.jssay.com/blog/index.php/2010/07/25/javascript%e7%9a%84trim%e5%87%bd%e6%95%b0/" title="Javascript的trim函数">Javascript的trim函数</a></li><li>2010年05月24日 -- <a href="http://www.jssay.com/blog/index.php/2010/05/24/js%e4%b8%ad%e9%87%8d%e5%86%99alert%e5%87%bd%e6%95%b0%e8%bd%ac/" title="Js中重写alert函数(转)">Js中重写alert函数(转)</a></li><li>2009年12月13日 -- <a href="http://www.jssay.com/blog/index.php/2009/12/13/2009-best-jquery-plug-in-turn/" title="2009 年度最佳 jQuery 插件（转）">2009 年度最佳 jQuery 插件（转）</a></li><li>2009年12月1日 -- <a href="http://www.jssay.com/blog/index.php/2009/12/01/jquery%e5%ad%a6%e4%b9%a0%e8%b5%84%e6%96%99/" title="JQuery学习资料">JQuery学习资料</a></li><li>2009年11月29日 -- <a href="http://www.jssay.com/blog/index.php/2009/11/29/%e7%94%a8jquery%e5%88%b6%e4%bd%9c%e7%9a%84%e5%87%a0%e6%ac%be3d%e6%95%88%e6%9e%9c/" title="用Jquery制作的几款3D效果">用Jquery制作的几款3D效果</a></li><li>2009年11月19日 -- <a href="http://www.jssay.com/blog/index.php/2009/11/19/recommendation-9-great-charting-page-script-javascript-framework/" title="推荐9款很棒的网页绘制图表JavaScript框架脚本">推荐9款很棒的网页绘制图表JavaScript框架脚本</a></li><li>2009年11月10日 -- <a href="http://www.jssay.com/blog/index.php/2009/11/10/jqueryextjsyuiprototypedojo%e7%ad%89js%e6%a1%86%e6%9e%b6%e7%9a%84%e5%8c%ba%e5%88%ab%e5%92%8c%e5%ba%94%e7%94%a8/" title="JQuery,ExtJS,YUI,Prototype,Dojo等JS框架的区别和应用">JQuery,ExtJS,YUI,Prototype,Dojo等JS框架的区别和应用</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.jssay.com/blog/index.php/2009/10/18/qq%e5%ae%a2%e6%9c%8d%e5%88%97%e8%a1%a8%e7%9a%84%e5%88%b6%e4%bd%9c/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

