<?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>守望轩 &#187; javascript</title>
	<atom:link href="http://www.watch-life.net/category/javascript/feed" rel="self" type="application/rss+xml" />
	<link>http://www.watch-life.net</link>
	<description>关注IT,审视自我,守望生活, 宁静雅致的小轩馆.</description>
	<lastBuildDate>Tue, 20 Jul 2010 00:46:12 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>帮帮我！我不懂JavaScript</title>
		<link>http://www.watch-life.net/javascript/help-i-dont-know-javascript.html</link>
		<comments>http://www.watch-life.net/javascript/help-i-dont-know-javascript.html#comments</comments>
		<pubDate>Wed, 30 Sep 2009 06:02:50 +0000</pubDate>
		<dc:creator>xjb</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[FireFox]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[MDC]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[mootools]]></category>
		<category><![CDATA[msdn]]></category>
		<category><![CDATA[yahoo]]></category>

		<guid isPermaLink="false">http://www.watch-life.net/?p=387</guid>
		<description><![CDATA[本文翻译自著名的Javascript库mootools的一篇Javascript入门文章Help! I Don’t Know JavaScript!，虽然是2007年的旧文，但现在看来仍是比较好的学习HTML,CSS,JavaScrip入门知识资源与参考文章，对javascript初学者很有帮助。
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;
为所有对MooTools感兴趣的开发者，我编制一份清单，在这个清单里提供关于客户端开发需要了解的各种资源。
 http://www.watch-life.net/javascript/help-i-dont-know-javascript.html
专业工具
这是进行web开发的先决条件
Firefox:你需要使用Firefox进行开发。但你需要在你管理的电脑上安装所有的浏览器，以便检查跨浏览器支持。
基本的扩展（firefox的扩展）

firedebug
有史以来最好的firefox插件，Firebug让你知道那些令你头痛不已的代码是如何在页面运行的。
Web Developer Toolbar
给你全面掌控网站的力量。禁用Javacript，查看不加载css时的页面运行，禁用referrers，禁用严格的警告，等等更多超出你想想的功能，

基础知识学习
别让对HTML的不了解阻碍你的web开发。
如何创建HTML
以下这些网络链接非常不错，不仅涉及相关细节，而且涉及语法和很好的练习，是可读性很好的参考

HTML
CSS
JavaScript

Mozilla开发者中心(Mozilla Developer Center ，MDC)
也许是网络上最全面的web开发信息中心，特别是针对Firefox或Mozilla的开发，这里应该成为你主要参考指南。

HTML
CSS
JavaScript
Bonus Points: DOM

W3 Schools
W3 Schools提供一站式的web技术参考，而且比W3C提供的原始文档更通俗易读。MDC虽然不错，但有一些可以用来运行的参考资料也是个不错的主意。

HTML
CSS
JavaScript

Microsoft’s Developer Network（MSDN）
不要被它的名字给蒙蔽了，其实JScript是和JavaScript一个东西。我认为微软（microsoft） 应该因为MSDN获得一两个实用性网站的奖项。特别是当你与IE的不规范进行斗争的时候，你应该来访问这个网站。

HTML &#38; CSS
JavaScript

其他资源
如果好奇，你可以读一下A List Apart,了解一些奇妙的技巧。
你也可以访问Mootools的在google上的用户组，或者非官方的论坛
JavaScript详细参考
JavaScript 是世界最酷的编程语言。首先，要想掌握好JavaScript，你必须认识到和你过去最喜欢的语言是不同的。只有明白这个事实后，你可以看看下面这些参考教程。
基础学习
来些轻松有趣的，Yahoo的一些让人敬佩的人上传了他们许多普及性培训的视频，对我们来说这是件了不起的事，因为我们对JavaScript的学习简单到了只需要花几个小时去看这些聪明人的谈话。
令人激动的Javascript三部曲
Javascript编程语言

Part 1
Part 2
Part 3
Part 4


 DOM原理

Part 1
Part 2
Part 3


高阶Javascript

Part 1
Part 2
Part 3



特别收录

Nicholas Zakas 谈代码的可维护性.
Joe Hewitt 介绍Firebug.

注：以上视频需要翻墙才可以查看。
独自学习
一旦你做完上面这些事，就可以利用google的帮助进行尝试，直到你可以使用原始的javascript写几个基础的有趣跨浏览器的AJAX的应用，不需要多久，你不需要google也可以做一些不花哨的应用。我认为你应该看一些对你有帮助的原始的Javascript框架，理解这些框架如何运行，以及理解框架提供的丰富功能。
有篇文章《JavaScript的知识缺陷（The JavaScript knowledge gap）》，你看看会觉得很有趣。
通过示例学习
如果你要成为一个很好的javascript程序员，最好的方式就是去看别人写的示例代码。换句话说，你可以看看 MooTools的源代码 ，从中获取不少灵感。你不仅可以吸收很多好思路，你还能更深的理解这一框架。
进阶到高阶水平
如果你确切完成了我上面列举的大部分学习内容，那么是时候下载MooTools了，我们很乐意看见在论坛提交你的问题，在IRC里潜水，为Mootools社区做出贡献。
下载完整的未经压缩的源码，并应用在你的开发项目上，如果你做个改变 ，看看会发生什么。试着找出bug点，并给出解决方法。尝试做一些插件，只是要确保你的插件的名称与MooTools相关联。
持续关注
常来我们的博客看看,这里有许多你需要了解有关调试的知识和有关MooTools框架的一些高阶的阅读资料。


	你可能也会喜欢以下文章：
	
	web developer tips (59):粘贴时在VS中自动格式化HTML (0)
	web developer tips (54):取消HTML/ CSS编辑器的智能提示 (0)
	web developer tips [...]]]></description>
			<content:encoded><![CDATA[<p>本文翻译自著名的<a href="http://www.watch-life.net/tag/javascript" target="_blank">Javascript</a>库<a href="http://mootools.net/" target="_blank">mootools</a>的一篇Javascript入门文章<a href="http://mootools.net/blog/2007/06/05/help-i-dont-know-javascript/" target="_blank">Help! I Don’t Know JavaScript!</a>，虽然是2007年的旧文，但现在看来仍是比较好的学习HTML,CSS,JavaScrip入门知识资源与参考文章，对javascript初学者很有帮助。</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
为所有对MooTools感兴趣的开发者，我编制一份清单，在这个清单里提供关于客户端开发需要了解的各种资源。<br />
 <a href="http://www.watch-life.net/javascript/help-i-dont-know-javascript.html" target="_blank">http://www.watch-life.net/javascript/help-i-dont-know-javascript.html</a></p>
<h2>专业工具</h2>
<p>这是进行web开发的先决条件<br />
<a href="http://www.mozillaonline.com/" target="_blank">Firefox</a>:你需要使用<a href="http://www.watch-life.net/tag/firefox" target="_blank">Firefox</a>进行开发。但你需要在你管理的电脑上安装所有的浏览器，以便检查跨浏览器支持。</p>
<p><strong>基本的扩展</strong>（firefox的扩展）</p>
<ul>
<li><a href="http://getfirebug.com/" target="_blank">firedebug</a></li>
<p>有史以来最好的firefox插件，Firebug让你知道那些令你头痛不已的代码是如何在页面运行的。</p>
<li><a href="https://addons.mozilla.org/en-US/firefox/addon/60" target="_blank">Web Developer Toolbar</a></li>
<p>给你全面掌控网站的力量。禁用Javacript，查看不加载css时的页面运行，禁用referrers，禁用严格的警告，等等更多超出你想想的功能，</p>
</ul>
<h2>基础知识学习</h2>
<p>别让对<a href="http://www.watch-life.net/tag/HTML" target="_blank">HTML</a>的不了解阻碍你的web开发。</p>
<p><strong>如何创建HTML</strong><br />
以下这些网络链接非常不错，不仅涉及相关细节，而且涉及语法和很好的练习，是可读性很好的参考</p>
<ul>
<li><a href="http://www.howtocreate.co.uk/tutorials/html/basics" target="_blank">HTML</a></li>
<li><a href="http://www.howtocreate.co.uk/tutorials/css/introduction" target="_blank">CSS</a></li>
<li><a href="http://www.howtocreate.co.uk/tutorials/javascript/important" target="_blank">JavaScript</a></li>
</ul>
<p><strong>Mozilla开发者中心</strong>(Mozilla Developer Center ，MDC)<br />
也许是网络上最全面的web开发信息中心，特别是针对Firefox或Mozilla的开发，这里应该成为你主要参考指南。</p>
<ul>
<li><a href="http://developer.mozilla.org/en/docs/HTML">HTML</a></li>
<li><a href="http://developer.mozilla.org/en/docs/CSS">CSS</a></li>
<li><a href="http://developer.mozilla.org/en/docs/JavaScript">JavaScript</a></li>
<li>Bonus Points: <a href="http://developer.mozilla.org/en/docs/DOM">DOM</a></li>
</ul>
<p><strong>W3 Schools</strong></p>
<p><a href="http://w3schools.com/" target="_blank">W3 Schools</a>提供一站式的web技术参考，而且比<a href="http://w3c.org" target="_blank">W3C</a>提供的原始文档更通俗易读。MDC虽然不错，但有一些可以用来运行的参考资料也是个不错的主意。</p>
<ul>
<li><a href="http://w3schools.com/html/default.asp">HTML</a></li>
<li><a href="http://w3schools.com/css/default.asp">CSS</a></li>
<li><a href="http://w3schools.com/js/default.asp">JavaScript</a></li>
</ul>
<p><strong>Microsoft’s Developer Network</strong>（MSDN）<br />
不要被它的名字给蒙蔽了，其实JScript是和JavaScript一个东西。我认为<a href="http://www.microsoft.com/zh/cn/default.aspx" target="_blank">微软</a>（microsoft） 应该因为<a href="http://msdn.microsoft.com" target="_blank">MSDN</a>获得一两个实用性网站的奖项。特别是当你与IE的不规范进行斗争的时候，你应该来访问这个网站。</p>
<ul>
<li><a href="http://msdn2.microsoft.com/en-us/library/aa155093.aspx">HTML &amp; CSS</a></li>
<li><a href="http://msdn2.microsoft.com/en-us/library/yek4tbz0.aspx">JavaScript</a></li>
</ul>
<p><strong>其他资源</strong><br />
如果好奇，你可以读一下<a href="http://www.alistapart.com/" target="_blank">A List Apart</a>,了解一些奇妙的技巧。</p>
<p>你也可以访问Mootools的在google上的<a href="http://groups.google.com/group/mootools-users/" target="_blank">用户组</a>，或者非官方的<a href="http://www.mooforum.net/" target="_blank">论坛</a></p>
<h2>JavaScript详细参考</h2>
<p>JavaScript 是世界最酷的编程语言。首先，要想掌握好JavaScript，你必须认识到和你过去最喜欢的语言是不同的。只有明白这个事实后，你可以看看下面这些参考教程。</p>
<p><strong>基础学习</strong></p>
<p>来些轻松有趣的，Yahoo的一些让人敬佩的人上传了他们许多普及性培训的视频，对我们来说这是件了不起的事，因为我们对JavaScript的学习简单到了只需要花几个小时去看这些聪明人的谈话。</p>
<p>令人激动的Javascript三部曲</p>
<li>Javascript编程语言
<ul>
<li><a href="http://video.yahoo.com/video/play?vid=111593">Part 1</a></li>
<li><a href="http://video.yahoo.com/video/play?vid=111594">Part 2</a></li>
<li><a href="http://video.yahoo.com/video/play?vid=111595">Part 3</a></li>
<li><a href="http://video.yahoo.com/video/play?vid=111596">Part 4</a></li>
</ul>
</li>
<li> DOM原理
<ul>
<li><a href="http://video.yahoo.com/video/play?vid=111582">Part 1</a></li>
<li><a href="http://video.yahoo.com/video/play?vid=111583">Part 2</a></li>
<li><a href="http://video.yahoo.com/video/play?vid=111584">Part 3</a></li>
</ul>
</li>
<li>高阶Javascript
<ul>
<li><a href="http://video.yahoo.com/video/play?vid=111585">Part 1</a></li>
<li><a href="http://video.yahoo.com/video/play?vid=111586">Part 2</a></li>
<li><a href="http://video.yahoo.com/video/play?vid=111587">Part 3</a></li>
</ul>
</li>
</ul>
<p><strong>特别收录</strong></p>
<ul>
<li><a href="http://video.yahoo.com/video/play?vid=568351">Nicholas Zakas 谈代码的可维护性.</a></li>
<li><a href="http://video.yahoo.com/video/play?vid=111597">Joe Hewitt 介绍Firebug.</a></li>
</ul>
<p><font color="red">注：以上视频需要翻墙才可以查看。</font></p>
<h2>独自学习</h2>
<p>一旦你做完上面这些事，就可以利用google的帮助进行尝试，直到你可以使用原始的javascript写几个基础的有趣跨浏览器的AJAX的应用，不需要多久，你不需要google也可以做一些不花哨的应用。我认为你应该看一些对你有帮助的原始的Javascript框架，理解这些框架如何运行，以及理解框架提供的丰富功能。</p>
<p>有篇文章《<a href="http://www.b-list.org/weblog/2007/feb/16/javascript-knowledge-gap/" target="_blank">JavaScript的知识缺陷（The JavaScript knowledge gap）</a>》，你看看会觉得很有趣。</p>
<h2>通过示例学习</h2>
<p>如果你要成为一个很好的javascript程序员，最好的方式就是去看别人写的示例代码。换句话说，你可以看看 <a href="http://dev.mootools.net/" target="_blank">MooTools</a>的源代码 ，从中获取不少灵感。你不仅可以吸收很多好思路，你还能更深的理解这一框架。</p>
<h2>进阶到高阶水平</h2>
<p>如果你确切完成了我上面列举的大部分学习内容，那么是时候下载MooTools了，我们很乐意看见在论坛提交你的问题，在IRC里潜水，为Mootools社区做出贡献。</p>
<p>下载完整的未经压缩的源码，并应用在你的开发项目上，如果你做个改变 ，看看会发生什么。试着找出bug点，并给出解决方法。尝试做一些插件，只是要确保你的插件的名称与MooTools相关联。</p>
<h2>持续关注</h2>
<p>常来<a href="http://mootools.net/blog/" target="_blank">我们的博客</a>看看,这里有许多你需要了解有关调试的知识和有关MooTools框架的一些高阶的阅读资料。</p>
<p class="akst_link">
</p>
	<h4>你可能也会喜欢以下文章：</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.watch-life.net/visual-studio/how-you-can-automatically-format-unformatted-html-on-paste-in-vs.html" title="web developer tips (59):粘贴时在VS中自动格式化HTML (2009-11-05)">web developer tips (59):粘贴时在VS中自动格式化HTML</a> (0)</li>
	<li><a href="http://www.watch-life.net/visual-studio/turn-off-intellisense-for-html-css-editors.html" title="web developer tips (54):取消HTML/ CSS编辑器的智能提示 (2009-10-14)">web developer tips (54):取消HTML/ CSS编辑器的智能提示</a> (0)</li>
	<li><a href="http://www.watch-life.net/visual-studio/update-jscript-intellisense-manually.html" title="web developer tips (56):手动更新JScript的智能感知 (2009-10-29)">web developer tips (56):手动更新JScript的智能感知</a> (0)</li>
	<li><a href="http://www.watch-life.net/googleapp/google-chrome-os-a-bit-disappointed.html" title="对Google chrome OS 有点失望 (2009-11-23)">对Google chrome OS 有点失望</a> (5)</li>
	<li><a href="http://www.watch-life.net/it-review/ms-buy-yahoo-446-hundred-million.html" title="微软终于出手了? (2008-02-05)">微软终于出手了?</a> (2)</li>
	<li><a href="http://www.watch-life.net/visual-studio/how-to-select-the-css-schema-for-intellisense-and-css-properties.html" title="web developer tips (81):为css的智能提示和属性选择css的模式 (2010-03-28)">web developer tips (81):为css的智能提示和属性选择css的模式</a> (0)</li>
	<li><a href="http://www.watch-life.net/programming-notes/html-table-2-excel.html" title="html页面表格导出到excel总结 (2008-06-23)">html页面表格导出到excel总结</a> (3)</li>
	<li><a href="http://www.watch-life.net/javascript/copy-to-clipboard-solution.html" title="兼容多种浏览器“复制到剪贴板”的解决方案 (2009-03-05)">兼容多种浏览器“复制到剪贴板”的解决方案</a> (4)</li>
</ul>

转载请注明作者，出处，以及原始超链接。<br />评论数：3 | <b><a href='http://www.watch-life.net/javascript/help-i-dont-know-javascript.html#comment'>评论这篇文章</a></b>|关注作者最近动态,欢迎 follow me <a href='https://twitter.com/xjb' target='_blank'>xjb@twitter.com</a>|联络作者：iamxjb@gmail.com<br/>© 2010 守望轩 <a href='http://www.watch-life.net/javascript/help-i-dont-know-javascript.html'>www.watch-life.net</a>]]></content:encoded>
			<wfw:commentRss>http://www.watch-life.net/javascript/help-i-dont-know-javascript.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>兼容多种浏览器“复制到剪贴板”的解决方案</title>
		<link>http://www.watch-life.net/javascript/copy-to-clipboard-solution.html</link>
		<comments>http://www.watch-life.net/javascript/copy-to-clipboard-solution.html#comments</comments>
		<pubDate>Thu, 05 Mar 2009 03:10:00 +0000</pubDate>
		<dc:creator>xjb</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[clipboard]]></category>
		<category><![CDATA[copy to clipboard]]></category>
		<category><![CDATA[FireFox]]></category>
		<category><![CDATA[IE]]></category>
		<category><![CDATA[Opera]]></category>
		<category><![CDATA[Safari]]></category>
		<category><![CDATA[剪贴板]]></category>
		<category><![CDATA[浏览器]]></category>

		<guid isPermaLink="false">http://www.watch-life.net/javascript/copy-to-clipboard-solution.html</guid>
		<description><![CDATA[昨天在也一个php程序的时候，要实现“复制到剪贴板”的功能，安全问题，浏览器的限制越来越严，实现的方法也越来越有限，这个简单的功能要想实现兼容不同的浏览器还真不容易，根据网上的一些资料结合我测试的经验，相关解决方案如下：
方案一：利用“window.clipboardData”
代码示例：
 
if (window.clipboardData) {
        window.clipboardData.clearData();
        window.clipboardData.setData(&#34;Text&#34;, txt)
};
  评论：这个方案只适合IE浏览器，同时在IE7下有个如下安全提示的对话框。
 
 由于IE的浏览器的占有率比较大，这个方案是使用最广的，也是最简单的方法。
支持浏览器：IE5.5 IE6.0 IE7.0
方案二：利用“Components.interfaces.nsIClipboard”
代码示例：
if (window.netscape) {
        try {
            netscape.security.PrivilegeManager.enablePrivilege(&#34;UniversalXPConnect&#34;);
      [...]]]></description>
			<content:encoded><![CDATA[<p>昨天在也一个<a href="http://www.watch-life.net/tag/php" target="_blank">php</a>程序的时候，要实现“复制到剪贴板”的功能，安全问题，浏览器的限制越来越严，实现的方法也越来越有限，这个简单的功能要想实现兼容不同的浏览器还真不容易，根据网上的一些资料结合我测试的经验，相关解决方案如下：</p>
<h2>方案一：利用“window.clipboardData”</h2>
<p><strong>代码示例：</strong></p>
<p> <code>
<div class="code"><span style="color: blue">if </span>(window.clipboardData) {<br />
        window.clipboardData.clearData();<br />
        window.clipboardData.setData(<span style="color: #a31515">&quot;Text&quot;</span>, txt)</p>
<p>};</p></div>
<p>  <strong>评论：</strong>这个方案只适合IE浏览器，同时在IE7下有个如下安全提示的对话框。</p>
<p><a href="http://www.watch-life.net/images/2009/03/image.png"><img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="154" alt="image" src="http://www.watch-life.net/images/2009/03/image-thumb.png" width="375" border="0" /></a> </p>
<p> 由于<a href="http://www.microsoft.com/china/windows/products/winfamily/ie/default.mspx" target="_blank">IE</a>的浏览器的占有率比较大，这个方案是使用最广的，也是最简单的方法。</p>
<p><strong>支持浏览器：IE5.5 IE6.0 IE7.0</strong></p>
<h2>方案二：利用“Components.interfaces.nsIClipboard”</h2>
<p><strong>代码示例：</strong></p>
<div class="code"><span style="color: blue">if </span>(window.netscape) {<br />
        <span style="color: blue">try </span>{<br />
            netscape.security.PrivilegeManager.enablePrivilege(<span style="color: #a31515">&quot;UniversalXPConnect&quot;</span>);<br />
        } <span style="color: blue">catch </span>(e) {<br />
        <span style="color: blue">if </span>(flag == 0) {<br />
            alert(<span style="color: #a31515">&quot;You are using the Firefox browser, copy the function browser refuse！<br/>\nPlease in the browser address bar enter'about:config' and Enter \n and set'signed.applets.codebase_principal_support' to 'true'&quot;</span>);</p>
<p>        } <span style="color: blue">else </span>{<br />
        alert(<span style="color: #a31515">&quot;你使用的是Firefox 浏览器,复制功能被浏览器拒绝！\n请在浏览器地址栏输入'about:config'<br/>并回车\n然后将'signed.applets.codebase_principal_support'设置为'true'&quot;</span>);</p>
<p>        }<br />
        }<br />
        <span style="color: blue">var </span>clip = Components.classes[<span style="color: #a31515">'@mozilla.org/widget/clipboard;1'</span>].createInstance<br/>(Components.interfaces.nsIClipboard);<br />
        <span style="color: blue">if </span>(!clip)<br />
            <span style="color: blue">return</span>;<br />
        <span style="color: blue">var </span>trans = Components.classes[<span style="color: #a31515">'@mozilla.org/widget/transferable;1'</span>].createInstance<br/>(Components.interfaces.nsITransferable);<br />
        <span style="color: blue">if </span>(!trans)<br />
            <span style="color: blue">return</span>;<br />
        trans.addDataFlavor(<span style="color: #a31515">'text/unicode'</span>);<br />
        <span style="color: blue">var </span>str = <span style="color: blue">new </span>Object();<br />
        <span style="color: blue">var </span>len = <span style="color: blue">new </span>Object();<br />
        <span style="color: blue">var </span>str = Components.classes[<span style="color: #a31515">&quot;@mozilla.org/supports-string;1&quot;</span>].createInstance<br/>(Components.interfaces.nsISupportsString);<br />
        <span style="color: blue">var </span>copytext = txt;<br />
        str.data = copytext;<br />
        trans.setTransferData(<span style="color: #a31515">&quot;text/unicode&quot;</span>, str, copytext.length * 2);<br />
        <span style="color: blue">var </span>clipid = Components.interfaces.nsIClipboard;<br />
        <span style="color: blue">if </span>(!clip)<br />
            <span style="color: blue">return false</span>;<br />
        clip.setData(trans, <span style="color: blue">null</span>, clipid.kGlobalClipboard);</p>
<p>}</p></div>
<p><strong>评论：</strong>这个方案只适合Firefox,同时也有安全的问题，如果想使用这个方法，必须手动开启Firefox的一个配置：signed.applets.codebase_principal_support。方法是：在地址栏输输入“about:config”,设置“signed.applets.codebase_principal_support”为<font color="#ff0000">true</font>，默认该项是<font color="#ff0000">false</font>。</p>
<p><a href="http://www.watch-life.net/images/2009/03/image1.png"><img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="49" alt="image" src="http://www.watch-life.net/images/2009/03/image-thumb1.png" width="684" border="0" /></a> </p>
</p>
<p>这个方法虽然可以在<a href="http://www.mozillaonline.com/" target="_blank">Firefox</a>使用，但让一个普通用户去开启这个配置似乎太专业了。</p>
<p>把这个方案和方案一结合，可以适用80%以上的用户。</p>
<p><strong>支持浏览器：</strong>Firefox1.5&#160; firefox2.0&#160; firefox3.0</p>
<h2>方案三：javascript + flash</h2>
<p><strong>代码示例：</strong></p>
<div class="code"><span style="color: blue">var </span>flashcopier = <span style="color: #a31515">'flashcopier'</span>;<br />
        <span style="color: blue">if </span>(!document.getElementById(flashcopier)) {<br />
            <span style="color: blue">var </span>divholder = document.createElement(<span style="color: #a31515">'div'</span>);<br />
            divholder.id = flashcopier;<br />
            document.body.appendChild(divholder);<br />
        }<br />
        document.getElementById(flashcopier).innerHTML = <span style="color: #a31515">''</span>;<br />
        <span style="color: blue">var </span>divinfo = <span style="color: #a31515">'&lt;embed src=&quot;clipboard.swf&quot; FlashVars=&quot;clipboard=' </span>+ text2copy + <span style="color: #a31515">'&quot; <br/>width=&quot;0&quot; height=&quot;0&quot; type=&quot;application/x-shockwave-flash&quot;&gt;&lt;/embed&gt;'</span>;</p>
<p>        document.getElementById(flashcopier).innerHTML = divinfo;}</p></div>
<p><a href="http://11011.net/software/vspaste"></a><strong>评论：</strong>这个方案是一个最流行的方法，著名的<a href="http://www.jeffothy.com/weblog/clipboard-copy/" target="_blank">Clipboard Copy</a>解决方案 利用一个clipboard.swf作为桥梁，复制内容到剪贴板。原理是：创建一个隐藏的flash文件，同时给给flash的变量<font color="#ff0000">FlashVars </font><font color="#000000">赋值“clipboard=..”，通过这个赋值flash就会把复制的内容放到剪贴板。这个方法兼容IE、Firefox、<a href="http://cn.opera.com/" target="_blank">Opera</a>、<a href="http://www.google.com/chrome/index.html?hl=zh-CN" target="_blank">chrome</a>、 <a href="http://www.apple.com.cn/safari/" target="_blank">Safari</a>，真可谓“万能”的解决方案。浏览器Flash的安装率非常高，这几乎是一个完美的解决方案。</font></p>
<p>clipboard.swf 的下载地址：<a title="http://watch-life.googlecode.com/files/clipboard.swf" href="http://watch-life.googlecode.com/files/clipboard.swf">http://watch-life.googlecode.com/files/clipboard.swf</a>。</p>
<p><font color="#000000">但是，世界上有完美的事么？这个方法只支持flash 9 ，不支持最新的flash 10。因为flash10中规定了只有在swf上进行了真实的操作（比如鼠标点击）才能访问剪切板，而上述方法只是使用了一个隐藏的swf文件，通过javascript操作flash的剪贴板，用户并没有对swf文件进行真实的操作，因此这个方法也就失效了。</font></p>
<p><font color="#000000">那么如何解决这个“真实操作”的问题呢？可以使用一个JavaScript库：<a href="http://code.google.com/p/zeroclipboard/"><strong>Zero Clipboard</strong></a>，利用这个js库可以支持利用flash 10 实现复制到剪贴板。这个方法原理是在一个透明的flash（对用户来说是不可见的）上覆盖一个dom元素比如button或div，当点击这个dom时，实际点击的是flash，从而访问flash的剪贴板。真够曲折的。:-)</font></p>
<p><font color="#000000">具体的实现详见如下链接：</font></p>
<p>DEMO页面 :&#160; <a href="http://bowser.macminicolo.net/~jhuckaby/zeroclipboard/">http://bowser.macminicolo.net/~jhuckaby/zeroclipboard/</a></p>
<p>Zero Clipboard项目主页： <a href="http://code.google.com/p/zeroclipboard/">http://code.google.com/p/zeroclipboard/</a></p>
<p><strong>支持浏览器：</strong>Firefox1.5&#160; firefox2.0&#160; firefox3.0 IE5.5 IE6.0 IE 7.0 opera 8 opera 9 chorme 1.0 chorme 2.0 safari 3</p>
<p><font color="#000000"></font></p>
<p class="akst_link">
</p>
	<h4>你可能也会喜欢以下文章：</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.watch-life.net/googleapp/google-chrome-os-a-bit-disappointed.html" title="对Google chrome OS 有点失望 (2009-11-23)">对Google chrome OS 有点失望</a> (5)</li>
	<li><a href="http://www.watch-life.net/visual-studio/add-browsers-to-visual-web-developer-using-the-browse-with-option.html" title="web developer tips (4):在Visual Web Developer中增加浏览器 (2009-06-09)">web developer tips (4):在Visual Web Developer中增加浏览器</a> (3)</li>
	<li><a href="http://www.watch-life.net/googleapp/common-google-chrome-objections.html" title="英文阅读：Matt Cutts关于google chrome常见疑问的回答 (2008-09-05)">英文阅读：Matt Cutts关于google chrome常见疑问的回答</a> (0)</li>
	<li><a href="http://www.watch-life.net/googleapp/google-chrome.html" title="Google Chrome 初试手记 (2008-09-03)">Google Chrome 初试手记</a> (3)</li>
	<li><a href="http://www.watch-life.net/javascript/help-i-dont-know-javascript.html" title="帮帮我！我不懂JavaScript (2009-09-30)">帮帮我！我不懂JavaScript</a> (3)</li>
	<li><a href="http://www.watch-life.net/googleapp/google-chrome-ie-terminator.html" title="Google Chrome 会是IE的终结者么？ (2008-09-03)">Google Chrome 会是IE的终结者么？</a> (5)</li>
	<li><a href="http://www.watch-life.net/visual-studio/use-vs2005-to-debug-with-ie8.html" title="web developer tips (51):使用vs2005和IE8进行调试 (2009-09-25)">web developer tips (51):使用vs2005和IE8进行调试</a> (0)</li>
	<li><a href="http://www.watch-life.net/aspnet/gridview-checkbox-firefox.html" title="让GridView中CheckBox列支持FireFox (2008-07-08)">让GridView中CheckBox列支持FireFox</a> (0)</li>
</ul>

转载请注明作者，出处，以及原始超链接。<br />评论数：4 | <b><a href='http://www.watch-life.net/javascript/copy-to-clipboard-solution.html#comment'>评论这篇文章</a></b>|关注作者最近动态,欢迎 follow me <a href='https://twitter.com/xjb' target='_blank'>xjb@twitter.com</a>|联络作者：iamxjb@gmail.com<br/>© 2010 守望轩 <a href='http://www.watch-life.net/javascript/copy-to-clipboard-solution.html'>www.watch-life.net</a>]]></content:encoded>
			<wfw:commentRss>http://www.watch-life.net/javascript/copy-to-clipboard-solution.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
