﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-日志记录-随笔分类-JavaScript</title><link>http://www.blogjava.net/lidahe/category/20783.html</link><description /><language>zh-cn</language><lastBuildDate>Sat, 07 Apr 2007 03:49:23 GMT</lastBuildDate><pubDate>Sat, 07 Apr 2007 03:49:23 GMT</pubDate><ttl>60</ttl><item><title>在javascript里动态张js脚本</title><link>http://www.blogjava.net/lidahe/archive/2007/04/07/109060.html</link><dc:creator>Ken.Lee</dc:creator><author>Ken.Lee</author><pubDate>Sat, 07 Apr 2007 00:50:00 GMT</pubDate><guid>http://www.blogjava.net/lidahe/archive/2007/04/07/109060.html</guid><wfw:comment>http://www.blogjava.net/lidahe/comments/109060.html</wfw:comment><comments>http://www.blogjava.net/lidahe/archive/2007/04/07/109060.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/lidahe/comments/commentRss/109060.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lidahe/services/trackbacks/109060.html</trackback:ping><description><![CDATA[
		<div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;">
				<!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>-->
				<span style="color: rgb(0, 128, 0);">/*</span>
				<span style="color: rgb(0, 128, 0);">*<br />*Author:Ken Lee<br />*Time:2007-04-07<br />*Note:该JavaScript函数是在JS里动态的引入JS脚本.<br />*Edition:1.0.0<br />*</span>
				<span style="color: rgb(0, 128, 0);">*/</span>
				<span style="color: rgb(0, 0, 0);">
						<br />
				</span>
				<span style="color: rgb(0, 0, 255);">function</span>
				<span style="color: rgb(0, 0, 0);"> LoadJs(filePath){<br />    </span>
				<span style="color: rgb(0, 0, 255);">var</span>
				<span style="color: rgb(0, 0, 0);"> head </span>
				<span style="color: rgb(0, 0, 0);">=</span>
				<span style="color: rgb(0, 0, 0);"> document.getElementsByTagName('head').item(</span>
				<span style="color: rgb(0, 0, 0);">0</span>
				<span style="color: rgb(0, 0, 0);">);<br /></span>
				<span style="color: rgb(0, 0, 255);">    var</span>
				<span style="color: rgb(0, 0, 0);"> script </span>
				<span style="color: rgb(0, 0, 0);">=</span>
				<span style="color: rgb(0, 0, 0);"> document.createElement('script');<br />    script.src </span>
				<span style="color: rgb(0, 0, 0);">=</span>
				<span style="color: rgb(0, 0, 0);"> file;<br />    script.type </span>
				<span style="color: rgb(0, 0, 0);">=</span>
				<span style="color: rgb(0, 0, 0);"> </span>
				<span style="color: rgb(0, 0, 0);">"</span>
				<span style="color: rgb(0, 0, 0);">text/javascript</span>
				<span style="color: rgb(0, 0, 0);">"</span>
				<span style="color: rgb(0, 0, 0);">;<br />    head.appendChild(script);<br />}</span>
		</div>
		<br />
<img src ="http://www.blogjava.net/lidahe/aggbug/109060.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lidahe/" target="_blank">Ken.Lee</a> 2007-04-07 08:50 <a href="http://www.blogjava.net/lidahe/archive/2007/04/07/109060.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Web开发中的Drag&amp;Drop完全手册</title><link>http://www.blogjava.net/lidahe/archive/2007/04/05/108784.html</link><dc:creator>Ken.Lee</dc:creator><author>Ken.Lee</author><pubDate>Thu, 05 Apr 2007 12:18:00 GMT</pubDate><guid>http://www.blogjava.net/lidahe/archive/2007/04/05/108784.html</guid><wfw:comment>http://www.blogjava.net/lidahe/comments/108784.html</wfw:comment><comments>http://www.blogjava.net/lidahe/archive/2007/04/05/108784.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/lidahe/comments/commentRss/108784.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lidahe/services/trackbacks/108784.html</trackback:ping><description><![CDATA[ 这几天做了一些drag&amp;drop操作方面的工作，在这里把一些注意事项记录下来，算是给自己备个忘，也给需要做类似工作的人留个树阴。这里要讨论的drag&amp;drop是指使用IE提供的内置机制，而不是使用鼠标模拟的那种"假"drag&amp;drop，比如移动一个div或span的效果那种。<br /><br />      要实现和控制drag&amp;drop操作，那么首先第一点要弄清楚的是，到底哪些元素是可以在Web上被drag的？实际上IE给我们并让我们drag的元素并不多，它们是：图片、选中的文字（包括页面文字和文字控件(input, textarea)中的文字）和连接（普通连接和锚点）。除此之外，别的Web元素都不支持drag操作（在这些元素上面drag其实就是选择操作了），所以要实现drag&amp;drop控制，只能选这3类元素来操作。<br /><br />       接下来，那么哪些元素又是可以接受drop操作呢？任何页面上的可见元素都是可以接受drop操作的，而它们之间的不同只是在于默认的drop事件不一样。比如，文字控件(input, textarea)的默认drop事件就是获取drag操作传过来的文字内容；iframe元素的默认drop操作是到航道drag操作传过来的URL地址。当然绝大多数的Web元素的默认是操作是do nothing，什么也不做。<br /><br />       那么当进行drag&amp;drop操作时，有那些是可控制和定制的内容呢？这里关于drag&amp;drop提供了以下一些事件（我们把它们分为作用于来源对象和目的对象来分别讨论），先讨论主要作用于来源对象的事件：<br />   ·ondrag —— 在整个从drag动作开始，直道drop动作结束的过程中，都会触发的一个事件。<br />   ·ondragstart —— 在drag动作开始时，在来源对象上触发的一个事件。<br />   ·ondragend —— 在drop动作结束的时候，在来源对象上出发的一个事件。<br /><br />       而主要做要在目的对象上的事件：<br />   ·ondragenter —— 在drag动作进入某一有效目的元素时，在该目的元素上触发的一个事件。<br />   ·ondragover —— 在drag动作进入某一有效目的元素后，在该目的元素上触发的一个事件。<br />   ·ondragleave —— 在drag动作离开某一有效目的元素时，在该目的元素上触发的一个事件。<br />   ·ondrop —— 在任何有效目的元素上进行drop操作时，在该目的元素上触发的一个事件。<br /><br />       这里的来源和目的的划分不是绝对的，比如ondragover事件，在drag操作过程中，如果鼠标进入了来源对象中，同样的也会触发这个事件。这些事件触发的顺序是：来源对象 --&gt; ondragstart --&gt; ondrag --&gt; ondragend；目的对象 --&gt; ondragenter --&gt; ondragover --&gt; ( ondragleave | ondrap )。由于是分别在同一个对象上触发的事件，所以这个顺序很简单。那么对于一个完整的从来源对象到目的对象的drag&amp;drop操作来说，事件的触发序列又是怎样呢？如果src表示来源对象，des表示目的对象，那么事件触发序列为：<br /><br />       src:ondragstart --&gt; src:ondrag --&gt; des:ondragenter --&gt; des:ondragover --&gt; ( des:ondragleave | des:ondrop ) --&gt; src:ondragend.<br /><br />    示例为：Drag Source Drop Destination<br />    // 如果alert窗口不响应鼠标点击可以使用键盘的space键来确定窗口<br /><br />       了解了事件触发顺序后，定制drag&amp;drop过程中鼠标的光标形状也是非常重要的一个内容。因为用户的drag&amp;drop的整个过程都需要靠鼠标光标的形状指导其进行操作，如果不能实时的调整光标为适合的型状，drag&amp;drop操作对用户来说将无异于朦眼寻物。IE提供了用来控制的drag&amp;drop过程中光标形状的两个属性，它们是：effectAllowed和dropEffect。<br /><br />      其属性分别为：<br />        ·effectAllowed: copy, link, move, copyLink, copyMove, all, none &amp; uninitialized.<br />        ·dropEffect: copy, link, move, none.<br /><br />        前者effectAllowed是用来控制允许drag&amp;drop操作类型的，所以这里的effect不是显示的"效果"，而是是否可以执行的"操作"，并且该属性只能在ondragstart事件中进行初始化，之后再对其赋值将无效。当然如果只使用effectAllowed属性，就已经可以达到控制光标形状的作用了。只是effectAllowed属性在处理复合操作时，比如copyLink, copyMove和all，会默认显示靠前那个操作类型的鼠标类型。也就是说如果effectAllowed是copyMove，那么这是鼠标光标就是copy形状。这下就知道为什么还要弄个dropEffect属性了吧？不过这个dropEffect属性中指定的effect，只能是之前effectAllowed允许的操作类型范围中的值，否则没有效果（显示no-drop鼠标光标）。<br />    <br />    示例为： Drag Source Drop Destination<br /><br />       如果查看代码，会发现在src和des的对象元素中，在ondragover事件里除了对dropEffect赋以适当的值外，还有两句话： <br />   event.returnValue=false;<br />   event.cancelBubble=true;<br /><br />       只是由于页面元素在接受dragover的时候，本身都有其默认的鼠标光标显示型状，所以为了让用户自定义的鼠标光标生效，就需要使事件event的returenValue为false值并停止当事件的冒泡(event.cancelBubble=true)。<br /><br />       到目前为止，一个完整的drag&amp;drop过程就差数据传递了，其实忙活了半天，这才是藏在所有交互操作和显示效果下面最重要的步骤。这个过程需要借助于IE提供的DHTML Data Transfer对象来完成，在window对象的属性event对象中，分别有两个Data Transfer对象各自的一个实例：一个叫dataTransfer，另一个叫clipboardData。这两个对象实例的行为非常相似，但又有一些区别，clipboardData顾名思义，它使用操作系统的剪贴板来存取数据，并有3个方法；而dataTransfer通过操作一个自己的内部剪贴板来存取数据(每次ondragend事件触发后就自动清空了)，除了有和clipboardData相同的3个方法外，还有两个属性(就是前面介绍的那两个effectAllowed和dropEffect)。<br /><br />       我们这里不对clipboardData作更多的讨论，继续来看dataTransfer对象。它包含3个方法，它们是：setData(sDataFormat, sText), getData(sDataFormat)和clearData([sDataFormat])。它们更详细的使用和参数请参阅MSDN，这里我只用它们来实现drag&amp;drop的数据传递。<br /><br />    示例为：Drag Source Drop Destination<br /><br />      其实很简单，就是在src的ondragstart中，调用event.dataTransfer.setData('TEXT', this.innerText)，然后再des的ondrop事件中，调用this.innerText = event.dataTransfer.getData('TEXT')就行了。<img src ="http://www.blogjava.net/lidahe/aggbug/108784.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lidahe/" target="_blank">Ken.Lee</a> 2007-04-05 20:18 <a href="http://www.blogjava.net/lidahe/archive/2007/04/05/108784.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JS操作运算符的优先级</title><link>http://www.blogjava.net/lidahe/archive/2007/03/22/105565.html</link><dc:creator>Ken.Lee</dc:creator><author>Ken.Lee</author><pubDate>Thu, 22 Mar 2007 07:08:00 GMT</pubDate><guid>http://www.blogjava.net/lidahe/archive/2007/03/22/105565.html</guid><wfw:comment>http://www.blogjava.net/lidahe/comments/105565.html</wfw:comment><comments>http://www.blogjava.net/lidahe/archive/2007/03/22/105565.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/lidahe/comments/commentRss/105565.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lidahe/services/trackbacks/105565.html</trackback:ping><description><![CDATA[
		<table border="1" cellpadding="1" cellspacing="0" width="100%">
				<caption>
						<h5 class="docTableTitle"> Operator Precedence in JavaScript (top to 
bottom)</h5>
				</caption>
				<colgroup>
				</colgroup>
				<tbody>
						<tr>
								<th class="docTableHeader" valign="top">
										<p class="docText">
												<span class="docEmphStrong">Operator</span>
										</p>
								</th>
						</tr>
						<tr>
								<td class="docTableCell" valign="top">
										<p class="docText">
												<tt>. [] ()</tt>
										</p>
								</td>
						</tr>
						<tr>
								<td class="docTableCell" valign="top">
										<p class="docText">
												<tt>++ -- - ~ ! delete new typeof void</tt>
										</p>
								</td>
						</tr>
						<tr>
								<td class="docTableCell" valign="top">
										<p class="docText">
												<tt>* / %</tt>
										</p>
								</td>
						</tr>
						<tr>
								<td class="docTableCell" valign="top">
										<p class="docText">
												<tt>+ - + (string concatenation)</tt>
										</p>
								</td>
						</tr>
						<tr>
								<td class="docTableCell" valign="top">
										<p class="docText">
												<tt>&lt;&lt; &gt;&gt; &gt;&gt;&gt;</tt>
										</p>
								</td>
						</tr>
						<tr>
								<td class="docTableCell" valign="top">
										<p class="docText">
												<tt>&lt; &lt;= &gt; &gt;= instanceof</tt>
										</p>
								</td>
						</tr>
						<tr>
								<td class="docTableCell" valign="top">
										<p class="docText">
												<tt>== != === !==</tt>
										</p>
								</td>
						</tr>
						<tr>
								<td class="docTableCell" valign="top">
										<p class="docText">
												<tt>&amp;</tt>
										</p>
								</td>
						</tr>
						<tr>
								<td class="docTableCell" valign="top">
										<p class="docText">
												<tt>^</tt>
										</p>
								</td>
						</tr>
						<tr>
								<td class="docTableCell" valign="top">
										<p class="docText">
												<tt>|</tt>
										</p>
								</td>
						</tr>
						<tr>
								<td class="docTableCell" valign="top">
										<p class="docText">
												<tt>&amp;&amp;</tt>
										</p>
								</td>
						</tr>
						<tr>
								<td class="docTableCell" valign="top">
										<p class="docText">
												<tt>||</tt>
										</p>
								</td>
						</tr>
						<tr>
								<td class="docTableCell" valign="top">
										<p class="docText">
												<tt>?:</tt>
										</p>
								</td>
						</tr>
						<tr>
								<td class="docTableCell" valign="top">
										<p class="docText">
												<tt>=</tt>
												<span class="docEmphasis">
														<tt>OP=</tt>
												</span> 
(shorthand assignments)</p>
								</td>
						</tr>
						<tr>
								<td class="docTableCell" valign="top">
										<p class="docText">
												<tt>,</tt>
										</p>
								</td>
						</tr>
				</tbody>
		</table>
<img src ="http://www.blogjava.net/lidahe/aggbug/105565.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lidahe/" target="_blank">Ken.Lee</a> 2007-03-22 15:08 <a href="http://www.blogjava.net/lidahe/archive/2007/03/22/105565.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JS编辑器</title><link>http://www.blogjava.net/lidahe/archive/2007/03/20/105092.html</link><dc:creator>Ken.Lee</dc:creator><author>Ken.Lee</author><pubDate>Tue, 20 Mar 2007 12:56:00 GMT</pubDate><guid>http://www.blogjava.net/lidahe/archive/2007/03/20/105092.html</guid><wfw:comment>http://www.blogjava.net/lidahe/comments/105092.html</wfw:comment><comments>http://www.blogjava.net/lidahe/archive/2007/03/20/105092.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/lidahe/comments/commentRss/105092.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lidahe/services/trackbacks/105092.html</trackback:ping><description><![CDATA[该网站可以验证你的JS,多行输入使用Shift+Enter.<br />Enter代表执行脚本<a href="http://www.squarefree.com/shell/shell.html"><br />http://www.squarefree.com/shell/shell.html</a><br /><br />如在此网页上输入<br />alert("test");回车(则会弹出窗口显示test字符串)<br /><br />现在只支持Mozilla Firefox浏览器<img src ="http://www.blogjava.net/lidahe/aggbug/105092.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lidahe/" target="_blank">Ken.Lee</a> 2007-03-20 20:56 <a href="http://www.blogjava.net/lidahe/archive/2007/03/20/105092.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>