﻿<?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-自知其无知-文章分类-Java Web</title><link>http://www.blogjava.net/CopyHoo/category/36471.html</link><description>不懂，慢慢懂。</description><language>zh-cn</language><lastBuildDate>Tue, 23 Dec 2008 02:44:55 GMT</lastBuildDate><pubDate>Tue, 23 Dec 2008 02:44:55 GMT</pubDate><ttl>60</ttl><item><title>正则表达式 DFA and NFA</title><link>http://www.blogjava.net/CopyHoo/articles/247665.html</link><dc:creator>CopyHoo</dc:creator><author>CopyHoo</author><pubDate>Sun, 21 Dec 2008 15:02:00 GMT</pubDate><guid>http://www.blogjava.net/CopyHoo/articles/247665.html</guid><wfw:comment>http://www.blogjava.net/CopyHoo/comments/247665.html</wfw:comment><comments>http://www.blogjava.net/CopyHoo/articles/247665.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/CopyHoo/comments/commentRss/247665.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/CopyHoo/services/trackbacks/247665.html</trackback:ping><description><![CDATA[<em>deterministic</em> finite automaton (DFA), <br />
<br />
non-deterministic finite automata (NFAs or NDFAs). <br />
<br />
the syntax of regular expressions in Perl:<br />
<dt><strong><a name="item_i">i</a></strong>
<dd>Do case-insensitive pattern matching.
<p>If <code>use locale</code> is in effect, the case map is taken from the current locale. See <a href="http://www.perl.com/doc/manual/html/pod/perllocale.html">the perllocale manpage</a>.
<p>&nbsp;</p>
<dt><strong><a name="item_m">m</a></strong>
<dd>Treat string as multiple lines. That is, change ``^'' and ``$'' from matching at only the very start or end of the string to the start or end of any line anywhere within the string,
<p>&nbsp;</p>
<dt><strong><a name="item_s">s</a></strong>
<dd>Treat string as single line. That is, change ``.'' to match any character whatsoever, even a newline, which it normally would not match.
<p>The <a href="http://www.perl.com/doc/manual/html/pod/perlre.html#item_s">/s</a> and <a href="http://www.perl.com/doc/manual/html/pod/perlre.html#item_m">/m</a> modifiers both override the <code>$*</code> setting. That is, no matter what <code>$*</code> contains, <a href="http://www.perl.com/doc/manual/html/pod/perlre.html#item_s">/s</a> without <a href="http://www.perl.com/doc/manual/html/pod/perlre.html#item_m">/m</a> will force ``^'' to match only at the beginning of the string and ``$'' to match only at the end (or just before a newline at the end) of the string. Together, as <code>/ms</code>, they let the ``.'' match any character whatsoever, while yet allowing ``^'' and ``$'' to match, respectively, just after and just before newlines within the string.
<p>&nbsp;</p>
<dt><strong><a name="item_x">x</a></strong>
<dd>Extend your pattern's legibility by permitting whitespace and comments.
<p>&nbsp;</p>
<p>These are usually written as ``the <code>/x</code> modifier'', even though the delimiter in question might not actually be a slash. In fact, any of these modifiers may also be embedded within the regular expression itself using the new <code>(?...)</code> construct. See below.
<p>The <code>/x</code> modifier itself needs a little more explanation. It tells the regular expression parser to ignore whitespace that is neither backslashed nor within a character class. You can use this to break up your regular expression into (slightly) more readable parts. The <code>#</code> character is also treated as a metacharacter introducing a comment, just as in ordinary Perl code. This also means that if you want real whitespace or <code>#</code> characters in the pattern (outside of a character class, where they are unaffected by <code>/x</code>), that you'll either have to escape them or encode them using octal or hex escapes. Taken together, these features go a long way towards making Perl's regular expressions more readable. Note that you have to be careful not to include the pattern delimiter in the comment--perl has no way of knowing you did not intend to close the pattern early. See the C-comment deletion code in <a href="http://www.perl.com/doc/manual/html/pod/perlop.html">the perlop manpage</a>. </p>
<p><br />
关于 /m/s 给出一个合理的解释：（通过现象分析实质）<br />
<br />
</p>
<p>By default, the ``^'' character is guaranteed to match at only the beginning of the string, the ``$'' character at only the end (or before the newline at the end) and Perl does certain optimizations with the assumption that the string contains only one line. Embedded newlines will not be matched by ``^'' or ``$''. You may, however, wish to treat a string as a multi-line buffer, such that the ``^'' will match after any newline within the string, and ``$'' will match before any newline. At the cost of a little more overhead, you can do this by using the <code>/m</code> modifier on the pattern match operator. (Older programs did this by setting <code>$*</code>, but this practice is now deprecated.)
<p>To facilitate multi-line substitutions, the ``.'' character never matches a newline unless you use the <a href="http://www.perl.com/doc/manual/html/pod/perlre.html#item_s">/s</a> modifier, which in effect tells Perl to pretend the string is a single line--even if it isn't. The <a href="http://www.perl.com/doc/manual/html/pod/perlre.html#item_s">/s</a> modifier also overrides the setting of <code>$*</code>, in case you have some (badly behaved) older code that sets it in another module. <br />
<br />
当有.出现在匹配换行符的位置的时候，&nbsp;&nbsp;那么就将正则在解析的时候 /s 的优先级要高，也就是将字符串进行 sigle line&nbsp; 的解析了。<br />
当出现 ^ 或者 $ 来匹配开始位置和结束位置的时候，即使这个时候也出现了 . 符号来匹配换行,正则在解析的时候 /m 的优先级要搞，也就是将字符串进行 multiple&nbsp; lines 的解析了。</p>
这就是两个的正则符号的并集，一个不行，另一个顶上的原则。<br />
具体可以通过相应的正则调试工具进行测试。
<p>在 multiple lines 中 . 符号是永远也不会用来匹配 newline 的，也就是 /m 的优先级屏蔽了 . 符号对于 newline 的匹配，如果要使 . 能够匹配 newline, 那么请使用 /s&nbsp;&nbsp;</p>
<dd>&nbsp;
<dd><br />
关于 /x 的合理解释：（通过例子调试获取结果）<br />
/x 也成为扩展模式，这是 Regex Match Tracer 告诉我们的。他在正则表达式中允许出现空格以及 #&nbsp;&nbsp;&nbsp;&nbsp;的注释，但是这些注释字符串（空格以及 # 后面出现的字符）并不匹配实际的字符串。<br />
</dd>
<p><br />
&nbsp;</p>
<h5>转义字符 \Q...\E</h5>
<p>使用 \Q 开始，\E 结束，可使中间的标点符号失去特殊意义，将中间的字符作为普通字符。</p>
<p>使用 \U 开始，\E 结束，除了具有 \Q...\E 相同的功能外，还将中间的小写字母转换成大写。在大小写敏感模式下，只能与大写文本匹配。</p>
<p>使用 \L 开始，\E 结束，除了具有 \Q...\E 相同的功能外，还将中间的大写字母转换成小写。在大小写敏感模式下，只能与小写文本匹配。</p>
<hr color="#fea089" size="1" />
<p>&nbsp;</p>
<h5>说明</h5>
<p>\Q...\E 适合用于：表达式中需要比较长的普通文本，而其中包含了特殊符号。</p>
<hr color="#fea089" size="1" />
<p>&nbsp;</p>
<h5>举例</h5>
<blockquote>
<table cellspacing="0" cellpadding="6" width="80%" border="1">
    <tbody>
        <tr>
            <th>
            <p>表达式</p>
            </th>
            <th>
            <p>说明</p>
            </th>
        </tr>
        <tr>
            <td>
            <p><strong><span style="color: green; font-family: Tahoma">\Q</span><span style="color: black; font-family: Tahoma">(a+b)*3</span><span style="color: green; font-family: Tahoma">\E</span></strong></p>
            </td>
            <td>
            <p>可匹配文本 "(a+b)*3"。</p>
            </td>
        </tr>
        <tr>
            <td>
            <p><strong><span style="color: black; font-family: Tahoma">\(a\+b\)\*3</span></strong></p>
            </td>
            <td>
            <p>如果不使用 \Q...\E 进行转义，则对每个特殊符号进行转义。</p>
            </td>
        </tr>
    </tbody>
</table>
</blockquote>
<img src ="http://www.blogjava.net/CopyHoo/aggbug/247665.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/CopyHoo/" target="_blank">CopyHoo</a> 2008-12-21 23:02 <a href="http://www.blogjava.net/CopyHoo/articles/247665.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于 jsp 的解释执行。</title><link>http://www.blogjava.net/CopyHoo/articles/246676.html</link><dc:creator>CopyHoo</dc:creator><author>CopyHoo</author><pubDate>Tue, 16 Dec 2008 09:12:00 GMT</pubDate><guid>http://www.blogjava.net/CopyHoo/articles/246676.html</guid><wfw:comment>http://www.blogjava.net/CopyHoo/comments/246676.html</wfw:comment><comments>http://www.blogjava.net/CopyHoo/articles/246676.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/CopyHoo/comments/commentRss/246676.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/CopyHoo/services/trackbacks/246676.html</trackback:ping><description><![CDATA[<br />
以前就应该知道的:<br />
如果在 html 中写不知名的标签， html 是会忽略掉这个标签的！！<br />
比如你建一个 html 标签，然后有以下内容:<br />
<br />
<br />
<br />
一个解释就是，jsp 是在服务器端就进行编译解释，编译解释为响应的 html 和 class ,然后将 html 发送到客户端。<br />
问题就出来了，如果我利用 js 在客户端进行 innerHTML ，其中 inner 的内容含有 jsp 标签，那么页面会如何处理？按照上面的解释执行，我们应该得不到我们进行标签处理的结果。<br />
测试内容如下:<br />
<font style="background-color: #cce8cc">&nbsp; &lt;script type="text/javascript"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp; window.onload = function(){<br />
&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;document.getElementById('div_test').innerHTML = '&lt;c:out value="中国，强大" /&gt;';<br />
&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp; &lt;/script&gt;<br />
&nbsp; <br />
&nbsp; <br />
&nbsp; &lt;div id="div_test"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Hello world<br />
&nbsp; &lt;/div&gt;<br />
&nbsp; <br />
&nbsp; &lt;c:out value="你好，世界" /&gt;</font><br />
<br />
你猜， div_test 的内容是什么？<br />
对了，是 "中国，强大"&nbsp;&nbsp; - 》 为什么是这个字符串，jstl 的标签不是在服务器端处理的吗？<br />
恩。因为从服务器发过来&nbsp; html 的时候，已经将 js 的jstl标签部分转为了字串了，所以浏览器解释执行的时候就当做普通的字符串处理。<br />
<br />
那么，利用 js（js 文件单独的通过 &lt;script src /&gt; 导入） 来进行 innerHTML 的 jstl 标签呢？会怎样显示？<br />
因为这样的话，js&nbsp;不会被服务器解释。<br />
<br />
<font style="background-color: #cce8cc">&lt;script src="../js/test.js"&gt;&lt;/script&gt;</font><br />
<br />
<font style="background-color: #cce8cc">&lt;body&gt;</font><br />
<font style="background-color: #cce8cc">&nbsp; &lt;div id="div_test"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Hello world<br />
&nbsp; &lt;/div&gt;<br />
&nbsp; <br />
&nbsp; &lt;c:out value="你好，世界" /&gt;</font><br />
&lt;/body&gt;<br />
<br />
而 test.js 的内容为:<br />
<p><font style="background-color: #cce8cc">window.onload = function(){&nbsp;</font></p>
<p><font style="background-color: #cce8cc">&nbsp;document.getElementById('div_test').innerHTML = '&lt;c:out value="不知不觉" /&gt;';<br />
}</font></p>
<br />
<br />
结果是，层 div_test 的内容变为了空 ....<br />
因为浏览器将不知名的标签以及其属性不进行任何的解释！，如果标签有内容，就仅仅显示标签的内容。<br />
比如： &lt;abcd value="哈哈" &gt;&lt;/abcd&gt;&nbsp; 就会显示为空。而 &lt;abcd&gt;哈哈&lt;/abcd&gt;&nbsp; 就仅仅显示标签之间的内容 &#8220;哈哈&#8221;。<br />
又由于 js 没有经过浏览器解析，直接将&nbsp;jstl 标签&nbsp;inner 到了 html 中，所以这个标签就还是方知道了层之间，浏览器解析时不识别，所以就挂掉了。<br />
<br />
一个相关的问题就是： 如果我从服务器直接获取数据（利用 Ajax），然后用 js&nbsp; 进行数据处理，我们如果在 js 中利用 innerHTML = "jstl 标签 处理我们的数据" &nbsp; 的话，就挂掉了。。<br />
如果利用&nbsp;ajax 获取数据，数据的格式化，要么在服务器端格式化好，要么定义专门的&nbsp; js 来格式化。<br />
具体情况，具体分析......<br />
<br />
<br />
一个附带的问题。<br />
&nbsp;如果我引入的js 文件（&nbsp;&lt;script src="test.js" /&gt; ） 与我的页面的&nbsp; js 文件定义的方法或者事件有冲突，是如何执行的？<br />
比如:都定义有 window.onload 事件.,谁会被采纳？？<br />
我还以为都会执行呢，只是后面的方法会覆盖前面的方法中相同的处理。<br />
但是不是的。<br />
他只选择处理在后面定义的一个。！<br />
也就是说，如果 &lt;script src= '' /&gt; 放在我页面定义的方法的后面，它就执行 &lt;script src='' /&gt;中的方法。<br />
归结为一点： 后面的覆盖到了前面的。
<img src ="http://www.blogjava.net/CopyHoo/aggbug/246676.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/CopyHoo/" target="_blank">CopyHoo</a> 2008-12-16 17:12 <a href="http://www.blogjava.net/CopyHoo/articles/246676.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>tomcat 根据自己的测试结果学习。</title><link>http://www.blogjava.net/CopyHoo/articles/246609.html</link><dc:creator>CopyHoo</dc:creator><author>CopyHoo</author><pubDate>Tue, 16 Dec 2008 05:07:00 GMT</pubDate><guid>http://www.blogjava.net/CopyHoo/articles/246609.html</guid><wfw:comment>http://www.blogjava.net/CopyHoo/comments/246609.html</wfw:comment><comments>http://www.blogjava.net/CopyHoo/articles/246609.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/CopyHoo/comments/commentRss/246609.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/CopyHoo/services/trackbacks/246609.html</trackback:ping><description><![CDATA[<p>&nbsp;</p>
<p>&nbsp;</p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top" /><span style="color: #0000ff">&lt;</span><span style="color: #800000">Host&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="localhost"</span><span style="color: #ff0000">&nbsp;&nbsp;appBase</span><span style="color: #0000ff">="webapps"</span><span style="color: #ff0000"><br />
<img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unpackWARs</span><span style="color: #0000ff">="true"</span><span style="color: #ff0000">&nbsp;autoDeploy</span><span style="color: #0000ff">="true"</span><span style="color: #ff0000"><br />
<img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xmlValidation</span><span style="color: #0000ff">="false"</span><span style="color: #ff0000">&nbsp;xmlNamespaceAware</span><span style="color: #0000ff">="false"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">Context&nbsp;</span><span style="color: #ff0000">path</span><span style="color: #0000ff">="/webtest"</span><span style="color: #ff0000">&nbsp;reloadable</span><span style="color: #0000ff">="false"</span><span style="color: #ff0000">&nbsp;docBase</span><span style="color: #0000ff">="D:\years5000&nbsp;workspace\webtest\web"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br />
<img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">Manager&nbsp;&nbsp;&nbsp;</span><span style="color: #ff0000">className</span><span style="color: #0000ff">="org.apache.catalina.session.PersistentManager"</span><span style="color: #ff0000">&nbsp;&nbsp;&nbsp;debug</span><span style="color: #0000ff">="0"</span><span style="color: #ff0000">&nbsp;&nbsp;&nbsp;saveOnRestart</span><span style="color: #0000ff">="true"</span><span style="color: #ff0000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;maxActiveSessions</span><span style="color: #0000ff">="-1"</span><span style="color: #ff0000">&nbsp;&nbsp;&nbsp;minIdleSwap</span><span style="color: #0000ff">="1800"</span><span style="color: #ff0000">&nbsp;&nbsp;&nbsp;maxIdleSwap</span><span style="color: #0000ff">="3600"</span><span style="color: #ff0000">&nbsp;&nbsp;&nbsp;maxIdleBackup</span><span style="color: #0000ff">="-1"</span><span style="color: #ff0000">&nbsp;&nbsp;&nbsp;checkInterval</span><span style="color: #0000ff">="180"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">Store&nbsp;&nbsp;&nbsp;</span><span style="color: #ff0000">className</span><span style="color: #0000ff">="org.apache.catalina.session.FileStore"</span><span style="color: #ff0000">&nbsp;&nbsp;&nbsp;directory</span><span style="color: #0000ff">="c:/www/session"</span><span style="color: #ff0000">&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">Manager</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top" /><br />
<img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">Context</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top" /><br />
<img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">Host</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top" /></span></div>
<p>&nbsp;</p>
<p>配置了 reloadable = "false" <br />
当 jsp 的页面部分（而非&lt;%= %&gt; ） 部分有更新时，服务器不会重启，服务器动态编译 jsp 使页面能够读取到最新信息。<br />
当更改了 jsp 的类部分时，服务器同样不户重启，服务器仍旧可以动态编译 jsp .<br />
不过， jsp 在更新之后，假设你浏览器输入了一个当前工程的一个错误目录而产生 404 错误，然后再重新定位到更改后的 jsp 页面（注意不要经过 servlert 跳转），它就会显示更新前的页面，而不会立即显示更新后的页面。如果你刷新一下，它就会显示更新后的页面了；如果你的 jsp 是通过 servlet 重定向(forward) 过来的，那么&nbsp;你的页面会马上显示出来最新的更新，而不会需要页面刷新才能获取最新的页面。这是为什么？是服务器的原因还是客户端缓存的原因呢？<br />
&nbsp;&nbsp;当产生404 错误之后，我清空了客户端的缓存，然后进行测试，果然能够得到结果？那会不会是我清空缓存的时候本身就耗费了很长时间，然后服务器已经重新编译了呢？也就说，我还要进行的测试就是不清空缓存，等待一定长的时间，然后回到正确的页面，看页面是否有正确的数据:&nbsp; 等了 n 长时间，在 url 中输入正确的路径后，还是得不到最新数据，由此可以看出这是客户端的错，而不是服务器的错。（开始是怀疑服务器的缓存，服务器的动态编译问题。）<br />
<br />
&nbsp;类(.java ) 文件的修改在 reload ='false' 的时候，服务器不能进行重启也就不能读取类文件的更新。<br />
即使你在某个类中添加了某个方法，但是没有重启服务器，你在 jsp 中调用这个类的方法，会报错！<br />
比如 Student 类如下:(其中类的 stuSex 属性是在运行的时候添加上去的)<br />
</p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="color: #0000ff">package</span><span style="color: #000000">&nbsp;pojo;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br />
<img id="Codehighlighter1_36_560_Open_Image" onclick="this.style.display='none'; Codehighlighter1_36_560_Open_Text.style.display='none'; Codehighlighter1_36_560_Closed_Image.style.display='inline'; Codehighlighter1_36_560_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_36_560_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_36_560_Closed_Text.style.display='none'; Codehighlighter1_36_560_Open_Image.style.display='inline'; Codehighlighter1_36_560_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;Student&nbsp;</span><span id="Codehighlighter1_36_560_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_36_560_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;String&nbsp;stuName;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;Integer&nbsp;stuAge;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;String&nbsp;stuSex;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img id="Codehighlighter1_143_163_Open_Image" onclick="this.style.display='none'; Codehighlighter1_143_163_Open_Text.style.display='none'; Codehighlighter1_143_163_Closed_Image.style.display='inline'; Codehighlighter1_143_163_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_143_163_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_143_163_Closed_Text.style.display='none'; Codehighlighter1_143_163_Open_Image.style.display='inline'; Codehighlighter1_143_163_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;String&nbsp;getStuSex()&nbsp;</span><span id="Codehighlighter1_143_163_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_143_163_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;stuSex;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img id="Codehighlighter1_204_231_Open_Image" onclick="this.style.display='none'; Codehighlighter1_204_231_Open_Text.style.display='none'; Codehighlighter1_204_231_Closed_Image.style.display='inline'; Codehighlighter1_204_231_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_204_231_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_204_231_Closed_Text.style.display='none'; Codehighlighter1_204_231_Open_Image.style.display='inline'; Codehighlighter1_204_231_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;setStuSex(String&nbsp;stuSex)&nbsp;</span><span id="Codehighlighter1_204_231_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_204_231_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.stuSex&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;stuSex;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img id="Codehighlighter1_253_314_Open_Image" onclick="this.style.display='none'; Codehighlighter1_253_314_Open_Text.style.display='none'; Codehighlighter1_253_314_Closed_Image.style.display='inline'; Codehighlighter1_253_314_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_253_314_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_253_314_Closed_Text.style.display='none'; Codehighlighter1_253_314_Open_Image.style.display='inline'; Codehighlighter1_253_314_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;init()</span><span id="Codehighlighter1_253_314_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_253_314_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;stuName&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">Hoo聪</span><span style="color: #000000">"</span><span style="color: #000000">;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;stuAge&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">30</span><span style="color: #000000">;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;stuSex&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">男人</span><span style="color: #000000">"</span><span style="color: #000000">;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img id="Codehighlighter1_346_366_Open_Image" onclick="this.style.display='none'; Codehighlighter1_346_366_Open_Text.style.display='none'; Codehighlighter1_346_366_Closed_Image.style.display='inline'; Codehighlighter1_346_366_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_346_366_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_346_366_Closed_Text.style.display='none'; Codehighlighter1_346_366_Open_Image.style.display='inline'; Codehighlighter1_346_366_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;Integer&nbsp;getStuAge()&nbsp;</span><span id="Codehighlighter1_346_366_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_346_366_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;stuAge;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img id="Codehighlighter1_407_434_Open_Image" onclick="this.style.display='none'; Codehighlighter1_407_434_Open_Text.style.display='none'; Codehighlighter1_407_434_Closed_Image.style.display='inline'; Codehighlighter1_407_434_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_407_434_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_407_434_Closed_Text.style.display='none'; Codehighlighter1_407_434_Open_Image.style.display='inline'; Codehighlighter1_407_434_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;setStuAge(Integer&nbsp;stuAge)&nbsp;</span><span id="Codehighlighter1_407_434_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_407_434_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.stuAge&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;stuAge;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img id="Codehighlighter1_464_485_Open_Image" onclick="this.style.display='none'; Codehighlighter1_464_485_Open_Text.style.display='none'; Codehighlighter1_464_485_Closed_Image.style.display='inline'; Codehighlighter1_464_485_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_464_485_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_464_485_Closed_Text.style.display='none'; Codehighlighter1_464_485_Open_Image.style.display='inline'; Codehighlighter1_464_485_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;String&nbsp;getStuName()&nbsp;</span><span id="Codehighlighter1_464_485_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_464_485_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;stuName;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img id="Codehighlighter1_527_556_Open_Image" onclick="this.style.display='none'; Codehighlighter1_527_556_Open_Text.style.display='none'; Codehighlighter1_527_556_Closed_Image.style.display='inline'; Codehighlighter1_527_556_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_527_556_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_527_556_Closed_Text.style.display='none'; Codehighlighter1_527_556_Open_Image.style.display='inline'; Codehighlighter1_527_556_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;setStuName(String&nbsp;stuName)&nbsp;</span><span id="Codehighlighter1_527_556_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_527_556_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.stuName&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;stuName;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span></div>
你的 jsp 如下:<br />
<font style="background-color: #cce8cc">&lt;%<br />
&nbsp; Student stu = new Student();<br />
&nbsp; stu.init();<br />
&nbsp; pageContext.setAttribute("stu",stu);<br />
%&gt;<br />
学生的 性别: ${stu.stuSex}<br />
<br />
这样会导致页面错误：<br />
Property 'stuSex' not found on type pojo.Student<br />
也就是说你的类并没有动态编译。<br />
<br />
</font><br />
<br />
配置了 reloadable = "true" <br />
当我们更改 jsp 的时候，是没有任何reload 的迹象的，当我们修改类的时候，可以 tomcat 进行了 reload 操作<br />
<img height="36" alt="" src="http://www.blogjava.net/images/blogjava_net/copyhoo/tomcat_reload.jpg" width="566" border="0" /><br />
<br />
小结如下：<br />
&nbsp;jsp 的修改（不论是页面部分还是类部分&lt;%=%&gt;） 都不需要 reload 的设置。<br />
class 在 reload 设置为 false 的时候，不会得到更新，即使你上传了最新的.class 文件；在 reload 设置为 true的时候就会得到更新，也就是说必须重启才能生效。而在一般情况下，重启带来的麻烦很多，不如重新部署你的工程。<br />
<br />
<img src ="http://www.blogjava.net/CopyHoo/aggbug/246609.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/CopyHoo/" target="_blank">CopyHoo</a> 2008-12-16 13:07 <a href="http://www.blogjava.net/CopyHoo/articles/246609.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>javascript动态增加行的错误 （问题比较经典）</title><link>http://www.blogjava.net/CopyHoo/articles/246521.html</link><dc:creator>CopyHoo</dc:creator><author>CopyHoo</author><pubDate>Mon, 15 Dec 2008 15:23:00 GMT</pubDate><guid>http://www.blogjava.net/CopyHoo/articles/246521.html</guid><wfw:comment>http://www.blogjava.net/CopyHoo/comments/246521.html</wfw:comment><comments>http://www.blogjava.net/CopyHoo/articles/246521.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/CopyHoo/comments/commentRss/246521.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/CopyHoo/services/trackbacks/246521.html</trackback:ping><description><![CDATA[<p><font style="background-color: #cce8cc">转自: <font style="background-color: #cce8cc">http://www.javaeye.com/problems/2639</font><br />
</font></p>
<ol class="dp-c">
    <li><span><span>&lt;html&gt; &nbsp;&nbsp;</span></span></li>
    <li><span>&lt;head&gt; &nbsp;&nbsp;</span></li>
    <li><span>&lt;title&gt;动态添加html元素&lt;/title&gt; &nbsp;&nbsp;</span></li>
    <li><span>&lt;script&nbsp;type=</span><span class="string">"text/javascript"</span><span>&gt; &nbsp;&nbsp;</span></span></li>
    <li><span>&lt;!-- &nbsp;&nbsp;</span></li>
    <li><span class="keyword">var</span><span>&nbsp;textNumber&nbsp;=&nbsp;1; &nbsp;&nbsp;</span></span></li>
    <li><span class="keyword">function</span><span>&nbsp;addCheckDetail(form,afterElement){ &nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;textNumber++; &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//创建列表标签 </span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">var</span><span>&nbsp;label2=document.createElement(</span><span class="string">"label"</span><span>); &nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;label2.<span class="hilite2">appendChild</span>(document.createTextNode(</span><span class="string">"问题所属方面："</span><span>)); &nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">var</span><span>&nbsp;<span class="hilite1">select</span>=document.createElement(</span><span class="string">"<span class="hilite1">select</span>"</span><span>);&nbsp; &nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="hilite1">select</span>.setAttribute(</span><span class="string">"<span class="hilite1">select</span>"</span><span>,</span><span class="string">"<span class="hilite1">select</span>"</span><span>+textNumber); &nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="hilite1">select</span>.setAttribute(</span><span class="string">"size"</span><span>,</span><span class="string">"1"</span><span>); &nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="hilite1">select</span>.setAttribute(</span><span class="string">"id"</span><span>,</span><span class="string">"<span class="hilite1">select</span>"</span><span>+textNumber); &nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">var</span><span>&nbsp;option1=document.createElement(</span><span class="string">"option"</span><span>); &nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;option1.setAttribute(</span><span class="string">"value"</span><span>,</span><span class="string">"1"</span><span>); &nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;option1.<span class="hilite2">appendChild</span>(document.createTextNode(</span><span class="string">"方面一"</span><span>)); &nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">var</span><span>&nbsp;option2=document.createElement(</span><span class="string">"option"</span><span>); &nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;option2.setAttribute(</span><span class="string">"value"</span><span>,</span><span class="string">"2"</span><span>); &nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;option2.<span class="hilite2">appendChild</span>(document.createTextNode(</span><span class="string">"方面二"</span><span>));&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;label2.<span class="hilite2">appendChild</span>(<span class="hilite1">select</span>); &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="hilite1">select</span>.<span class="hilite2">appendChild</span>(option1); &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="hilite1">select</span>.<span class="hilite2">appendChild</span>(option2); &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;form.insertBefore(label2,afterElement); &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//&nbsp;创建文本标签 </span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">var</span><span>&nbsp;label1&nbsp;=&nbsp;document.createElement(</span><span class="string">"label"</span><span>); &nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//&nbsp;创建文本框 </span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">var</span><span>&nbsp;textField&nbsp;=&nbsp;document.createElement(</span><span class="string">"textarea"</span><span>); &nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;textField.setAttribute(</span><span class="string">"name"</span><span>,</span><span class="string">"txt"</span><span>+textNumber); &nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;textField.setAttribute(</span><span class="string">"cols"</span><span>,80); &nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;textField.setAttribute(</span><span class="string">"rows"</span><span>,3); &nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;textField.setAttribute(</span><span class="string">"id"</span><span>,</span><span class="string">"txt"</span><span>+textNumber); &nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//&nbsp;增加标签文本注释 </span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;label1.<span class="hilite2">appendChild</span>(document.createTextNode(</span><span class="string">"问题描述"</span><span>+textNumber+</span><span class="string">":"</span><span>)); &nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//&nbsp;把textField放入标签中 </span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;label1.<span class="hilite2">appendChild</span>(textField); &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//&nbsp;把所有的这些增加到form中 </span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;form.insertBefore(label1,afterElement); &nbsp;&nbsp;</span></li>
    <li><span>} &nbsp;&nbsp;</span></li>
    <li><span class="keyword">function</span><span>&nbsp;removeCheckDetail(form,afterElement){ &nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//&nbsp;假如有文本框个数超过一个 </span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span>&nbsp;(textNumber&nbsp;&gt;&nbsp;1)&nbsp;{&nbsp; &nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//&nbsp;删除最后一个添加的文本框 </span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;form.removeChild(document.getElementById(</span><span class="string">"<span class="hilite1">select</span>"</span><span>+textNumber).parentNode); &nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;form.removeChild(document.getElementById(</span><span class="string">"txt"</span><span>+textNumber).parentNode); &nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;textNumber--; &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span></li>
    <li><span>} &nbsp;&nbsp;</span></li>
    <li><span class="comment">//--&gt; </span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&lt;/script&gt; &nbsp;&nbsp;</span></li>
    <li><span>&lt;style&nbsp;type=</span><span class="string">"text/css"</span><span>&gt; &nbsp;&nbsp;</span></span></li>
    <li><span>&lt;!-- &nbsp;&nbsp;</span></li>
    <li><span>label&nbsp;{ &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;display:block; &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;margin:.25em&nbsp;0em; &nbsp;&nbsp;</span></li>
    <li><span>} &nbsp;&nbsp;</span></li>
    <li><span>--&gt; &nbsp;&nbsp;</span></li>
    <li><span>&lt;/style&gt; &nbsp;&nbsp;</span></li>
    <li><span>&lt;/head&gt; &nbsp;&nbsp;</span></li>
    <li><span>&lt;body&gt; &nbsp;&nbsp;</span></li>
    <li><span>&lt;form&nbsp;id=</span><span class="string">"myForm"</span><span>&nbsp;method=</span><span class="string">"get"</span><span>&nbsp;action=</span><span class="string">"./"</span><span>&nbsp;/&gt;&nbsp;&nbsp;</span></span></li>
</ol>
<pre class="js" style="display: none" name="code">&lt;html&gt;
&lt;head&gt;
&lt;title&gt;动态添加html元素&lt;/title&gt;
&lt;script type="text/javascript"&gt;
&lt;!--
var textNumber = 1;
function addCheckDetail(form,afterElement){
textNumber++;
//创建列表标签
var label2=document.createElement("label");
label2.<span class="hilite2">appendChild</span>(document.createTextNode("问题所属方面："));
var <span class="hilite1">select</span>=document.createElement("<span class="hilite1">select</span>");
<span class="hilite1">select</span>.setAttribute("<span class="hilite1">select</span>","<span class="hilite1">select</span>"+textNumber);
<span class="hilite1">select</span>.setAttribute("size","1");
<span class="hilite1">select</span>.setAttribute("id","<span class="hilite1">select</span>"+textNumber);
var option1=document.createElement("option");
option1.setAttribute("value","1");
option1.<span class="hilite2">appendChild</span>(document.createTextNode("方面一"));
var option2=document.createElement("option");
option2.setAttribute("value","2");
option2.<span class="hilite2">appendChild</span>(document.createTextNode("方面二"));
label2.<span class="hilite2">appendChild</span>(<span class="hilite1">select</span>);
<span class="hilite1">select</span>.<span class="hilite2">appendChild</span>(option1);
<span class="hilite1">select</span>.<span class="hilite2">appendChild</span>(option2);
form.insertBefore(label2,afterElement);
// 创建文本标签
var label1 = document.createElement("label");
// 创建文本框
var textField = document.createElement("textarea");
textField.setAttribute("name","txt"+textNumber);
textField.setAttribute("cols",80);
textField.setAttribute("rows",3);
textField.setAttribute("id","txt"+textNumber);
// 增加标签文本注释
label1.<span class="hilite2">appendChild</span>(document.createTextNode("问题描述"+textNumber+":"));
// 把textField放入标签中
label1.<span class="hilite2">appendChild</span>(textField);
// 把所有的这些增加到form中
form.insertBefore(label1,afterElement);
}
function removeCheckDetail(form,afterElement){
// 假如有文本框个数超过一个
if (textNumber &gt; 1) {
// 删除最后一个添加的文本框
form.removeChild(document.getElementById("<span class="hilite1">select</span>"+textNumber).parentNode);
form.removeChild(document.getElementById("txt"+textNumber).parentNode);
textNumber--;
}
}
//--&gt;
&lt;/script&gt;
&lt;style type="text/css"&gt;
&lt;!--
label {
display:block;
margin:.25em 0em;
}
--&gt;
&lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;form id="myForm" method="get" action="./" /&gt;
</pre>
<div class="dp-highlighter">
<ol class="dp-c">
    <li><span><span>&lt;table&gt;&lt;tbody&gt; &nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;label&gt;问题所属方面： &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;<span class="hilite1">select</span>&nbsp;name=</span><span class="string">"<span class="hilite1">select</span>"</span><span>&nbsp;size=</span><span class="string">"1"</span><span>&nbsp;id=</span><span class="string">""</span><span>&gt; &nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;option&nbsp;value=</span><span class="string">"1"</span><span>&gt;问题一&lt;/option&gt; &nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;option&nbsp;value=</span><span class="string">"2"</span><span>&gt;问题二&lt;/option&gt; &nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/<span class="hilite1">select</span>&gt; &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/label&gt; &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;label&gt;问题描述1:&lt;textarea&nbsp;name=</span><span class="string">"txt1"</span><span>&nbsp;cols=</span><span class="string">"80"</span><span>&nbsp;rows=</span><span class="string">"3"</span><span>&gt;&lt;/textarea&gt;&lt;/label&gt; &nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;p&gt; &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;input&nbsp;type=</span><span class="string">"button"</span><span>&nbsp;value=</span><span class="string">"添加一个问题"</span><span>&nbsp;onclick=</span><span class="string">"addCheckDetail(this.form,this.parentNode)"</span><span>&nbsp;/&gt; &nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;input&nbsp;type=</span><span class="string">"button"</span><span>&nbsp;value=</span><span class="string">"删除最后一个问题"</span><span>&nbsp;onclick=</span><span class="string">"removeCheckDetail(this.form)"</span><span>&nbsp;/&gt; &nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/p&gt; &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;p&gt;&lt;input&nbsp;type=</span><span class="string">"Submit"</span><span>&nbsp;value=</span><span class="string">"保存"</span><span>&nbsp;/&gt;&lt;/p&gt;&nbsp;&nbsp;</span></span></li>
</ol>
</div>
<pre class="js" style="display: none" name="code">&lt;table&gt;&lt;tbody&gt;
&lt;label&gt;问题所属方面：
&lt;<span class="hilite1">select</span> name="<span class="hilite1">select</span>" size="1" id=""&gt;
&lt;option value="1"&gt;问题一&lt;/option&gt;
&lt;option value="2"&gt;问题二&lt;/option&gt;
&lt;/<span class="hilite1">select</span>&gt;
&lt;/label&gt;
&lt;label&gt;问题描述1:&lt;textarea name="txt1" cols="80" rows="3"&gt;&lt;/textarea&gt;&lt;/label&gt;
&lt;p&gt;
&lt;input type="button" value="添加一个问题" onclick="addCheckDetail(this.form,this.parentNode)" /&gt;
&lt;input type="button" value="删除最后一个问题" onclick="removeCheckDetail(this.form)" /&gt;
&lt;/p&gt;
&lt;p&gt;&lt;input type="Submit" value="保存" /&gt;&lt;/p&gt;</pre>
<div class="dp-highlighter">
<ol class="dp-c">
    <li><span><span>&lt;/tbody&gt;&lt;/table&gt; &nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li><span>&lt;/form&gt; &nbsp;&nbsp;</span></li>
    <li><span>&lt;/body&gt; &nbsp;&nbsp;</span></li>
    <li><span>&lt;/html&gt;&nbsp;&nbsp;</span></li>
</ol>
</div>
<pre class="js" style="display: none" name="code">&lt;/tbody&gt;&lt;/table&gt;
&lt;/form&gt;
&lt;/body&gt;
&lt;/html&gt;</pre>
<p>&nbsp;我想用javascript动态增加行,当form中没有table标签时是可以增加的,像上面增加了table标签就出现错误了,请问各位该如何解决?</p>
&nbsp;&nbsp;&nbsp;&nbsp;<br />
=======================================<br />
解决方案:<br />
由于form.insertBefore是将指定节点添加到form的直接子节点上,由于form中只有一个table,没有afterElement这个直接子节点.所以会报错. <br />
input标签的parentNode即p标签,它的直接父结点是TBODY标签.所以只能用TBodyElement.insertBefore.进行插入. <br />
<br />
把
<div class="dp-highlighter">
<div class="bar">
<div class="tools">Js代码 <a title="复制代码" onclick="dp.sh.Toolbar.Command('CopyToClipboard',this);return false;" href="http://www.javaeye.com/problems/2639#"><img alt="复制代码" src="http://www.javaeye.com/images/icon_copy.gif" /></a></div>
</div>
<ol class="dp-c">
    <li><span><span>form.insertBefore(label2,afterElement); &nbsp;&nbsp;</span></span></li>
    <li><span>form.insertBefore(label1,afterElement);&nbsp;&nbsp;</span></li>
</ol>
</div>
<pre class="js" style="display: none" name="code">form.insertBefore(label2,afterElement);
form.insertBefore(label1,afterElement);</pre>
<br />
两句改为:
<div class="dp-highlighter">
<ol class="dp-c">
    <li><span><span>afterElement.parentNode.insertBefore(label2,afterElement); &nbsp;&nbsp;</span></span></li>
    <li><span>afterElement.parentNode.insertBefore(label1,afterElement);&nbsp;&nbsp;</span></li>
</ol>
</div>
<pre class="js" style="display: none" name="code">afterElement.parentNode.insertBefore(label2,afterElement);
afterElement.parentNode.insertBefore(label1,afterElement);</pre>
<br />
<img src ="http://www.blogjava.net/CopyHoo/aggbug/246521.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/CopyHoo/" target="_blank">CopyHoo</a> 2008-12-15 23:23 <a href="http://www.blogjava.net/CopyHoo/articles/246521.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>js细节札记</title><link>http://www.blogjava.net/CopyHoo/articles/246517.html</link><dc:creator>CopyHoo</dc:creator><author>CopyHoo</author><pubDate>Mon, 15 Dec 2008 15:18:00 GMT</pubDate><guid>http://www.blogjava.net/CopyHoo/articles/246517.html</guid><wfw:comment>http://www.blogjava.net/CopyHoo/comments/246517.html</wfw:comment><comments>http://www.blogjava.net/CopyHoo/articles/246517.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/CopyHoo/comments/commentRss/246517.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/CopyHoo/services/trackbacks/246517.html</trackback:ping><description><![CDATA[转自:<font style="background-color: #cce8cc"><a href="http://onlylovexue.javaeye.com/blog/267511"><font style="background-color: #cce8cc">http://onlylovexue.javaeye.com/blog/267511</font></a></font><br />
<br />
用href=# 和 javascript：void(0) 可以使链接后什么操作都不执行javascript：void(alert('ok')) <br />
<br />
div.style.visibility="hidden"(层掩藏)|"visible"(层显示) <br />
div.style.display=""(还原空间)|"none"(抽取空间) <br />
<br />
document.body.scrollLeft:指窗口向左滚动的距离&nbsp; document.body.scrollTop离最上的距离 <br />
<br />
posTop的数值其实和top是一样的，但区别在于，top固定了元素单位为px，而posTop只是一个数值，因此一般使用posTop来进行运算 <br />
div.style.posLeft：是包括窗口滚动的那部分&nbsp; 并且是数字的 而left是有px 的 <br />
<br />
event.x：是指触发的事件上 相对与现在窗口的距离 <br />
event.offsetX：事件触发时相对于事件对象的X值 <br />
div.style.zIndex&nbsp; 与style="z-Index:100"&nbsp; 的表达方式 <br />
<br />
----------------------------------------------------- <br />
用js 的createElement("div") 中的div不是随意的&nbsp; 而是对应html中的一个标记名 <br />
createElement("option") 用来创建选项节点 <br />
var select=document.createElement("select"); <br />
var cells=select.options; <br />
var op=new Option("value","值"); <br />
cells.add(op); <br />
或者用document.createElement("select").appendChild(document.createElement("option")) <br />
------------------------------------------------------ <br />
<br />
opener：指用WINDOW.OPEN等方式创建的新窗口对应的原窗口。 <br />
window.parent是相对于iframe而言的父页面，window.opener是window.open打开子页面的父页面 <br />
获取父窗体的document的引用:window.opener.document <br />
引用demo： <br />
var _parentWin = window.opener; <br />
_parentWin.form1.username.value = "xxxx" ; <br />
并且可以通过_parentWin 获取对document对象的引用 <br />
----------------------------------------------------- <br />
Window 对象是 JavaScript 层级中的顶层对象。Window 对象代表一个浏览器窗口或一个框架。Window 对象会在 &lt;body&gt; 或 &lt;frameset&gt; 每次出现时被自动创建 <br />
----------------------------------------------------- <br />
DOM属性: <br />
childNodes 该属性返回一个数组，这个数组由给定元素节点的子节点构成 可用childNodes[i]来进行访问 与table 的rows一样 和select 的options一样 <br />
<br />
firstChild 返回第一个子节点 <br />
lastChild 返回最后一个子节点 <br />
nextSibling 返回给定节点的下一个子节点 <br />
parentNode 返回一个给定节点的父节点 <br />
previousSibling 返回给定节点的下一个子节点?? <br />
rowIndex&nbsp;&nbsp;&nbsp; 对于row可以获取其row所在的table 的位置 <br />
cellIndex&nbsp;&nbsp; 对于cell可以获取其cell所在的row的位置 <br />
<br />
1 createElement(element) <br />
创建一个指定标签名创建一个新的元素节点，返回值为指向新建元素节点的引用指针。 <br />
eg) var para = document.createElement("p"); <br />
document.body.appendChild(para); <br />
<br />
2 createTextNode() <br />
创建一个包含着给定文本的新文本节点，返回一个指向新建文本节点的引用指针： <br />
reference = document.createTextNode() <br />
参数为新建文本节点所包含的文本字符串 <br />
<br />
var message = document.createTextNode("hello world"); <br />
var container = document.createElement("p"); <br />
container.appendChild(message); <br />
document.body.appendChild(container); <br />
<br />
3 cloneNode() <br />
reference = node.cloneNode(deep) <br />
为给定节点创建一个副本，参数为 true 或者 false，true 表示同时复制该节点的子节点，false 则不复制任何子节点。 <br />
var para = document.createElement("p"); <br />
var message = document.createTextNode("hello world"); <br />
para.appendChild(message); <br />
document.body.appendChild(para); <br />
var newpara = para.cloneNode(true); <br />
document.body.appendChild(newpara); <br />
<br />
4 appendChild() <br />
reference = node.appendChild(newChild); <br />
插入节点，例子参考前面。 <br />
<br />
5 insertBefore() <br />
reference = element.insertBefore(newNode,targetNode) <br />
将一个给定节点插入到一个给定元素节点的给定子节点的前面，返回一个指向新增子节点的引用指针。 <br />
<br />
var container = document.getElementById("content"); <br />
var message = document.getElementById("fineprint"); <br />
var para = document.createElement("p"); <br />
container.insertBefore(para,message); <br />
<br />
6 removeChild() <br />
reference = element.removeChild(node) <br />
将从一个给定元素利删除一个子节点，返回一个指向已被删除的子节点的引用指针。 <br />
当某个节点被 removeChild()删除后，此节点所有子节点都被删除。 <br />
<br />
7 replaceChild() <br />
reference = element.replaceChild(newChild,oldChild) <br />
把一个给定父元素里的一个子节点替换为另外一个节点，oldChild 节点必须是 element 元素的一个子节点，返回值是一个指向已被替换的那个子节点的引用指针。 <br />
<br />
var container = document.getElementById("content"); <br />
var message = document.getElementById("fineprint"); <br />
var para = document.createElement("p"); <br />
container.replaceChild(para,message); <br />
<br />
8 setAttribute() <br />
element.setAttribute(attributeName,attributeValue); <br />
为给定元素节点添加一个新的属性值或是改变它的现有属性 <br />
<br />
9 getAttribute <br />
attributeValue = element.getAttribute(attributeName) <br />
返回一个给定元素的一个给定属性节点的值。 <br />
<br />
10 getElementById() <br />
element = document.getElementById(ID) <br />
寻找一个有着给定 id 属性值的元素，返回一个元素节点 <br />
<br />
11 getElementByTagName() <br />
用于寻找有着给定标签名的所有元素： <br />
elements = document.getElementsByTagName(tagName) <br />
返回一个节点集合。 <br />
<br />
12 hasChildNodes <br />
用来检查一个给定元素是否有子节点 <br />
booleanValue = element.hasChildNodes <br />
返回 true 或 false。 <br />
------------------------------------------------------ <br />
对于select 标签的option： <br />
new Option(text,value);声明一个新的optioin对象,参数text 是指纯文本内容 <br />
<br />
var cells=select.options：获取一个select子项的集合 返回是一个数组类型 <br />
<br />
添加方式：select.options.add(oop); 或cells.add(oop); <br />
<br />
删除方式:select.options.remove(i);或cells.remove(i); <br />
----------------------------------------------------- <br />
yyyy:年份 <br />
MM：月 <br />
dd:日 <br />
mm ：分钟 <br />
hh:12小时制度&nbsp; 区别于oracle中的 <br />
HH:24小时制度 <br />
ss：秒 <br />
------------------------------------------------------ <br />
<br />
<br />
<br />
你看这个结果:<br />
alert("Hello world" + null);&nbsp;&nbsp;&nbsp; // output "Hello worldnull"<br />
在 java 中 : System.out.println("Hello world" + null); // output "Hello worldnull"
<img src ="http://www.blogjava.net/CopyHoo/aggbug/246517.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/CopyHoo/" target="_blank">CopyHoo</a> 2008-12-15 23:18 <a href="http://www.blogjava.net/CopyHoo/articles/246517.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>html 的 select 组</title><link>http://www.blogjava.net/CopyHoo/articles/246507.html</link><dc:creator>CopyHoo</dc:creator><author>CopyHoo</author><pubDate>Mon, 15 Dec 2008 14:51:00 GMT</pubDate><guid>http://www.blogjava.net/CopyHoo/articles/246507.html</guid><wfw:comment>http://www.blogjava.net/CopyHoo/comments/246507.html</wfw:comment><comments>http://www.blogjava.net/CopyHoo/articles/246507.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/CopyHoo/comments/commentRss/246507.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/CopyHoo/services/trackbacks/246507.html</trackback:ping><description><![CDATA[<p><font style="background-color: #cce8cc">转自: <font style="background-color: #cce8cc">http://www.webdeveloper.com/forum/archive/index.php/t-70927.html<br />
<br />
可谓超级经典:<br />
<br />
</p>
<div class="username">whitedog</div>
<div class="date">06-27-2005, 11:20 AM</div>
<div class="posttext">Hi Folks,<br />
really think that this is a FAQ but cant find<br />
any docs about this....<br />
<br />
How can i populate a select with optgroups<br />
is there any standard constructor like <br />
new Option(text,val,..) which can do???<br />
<br />
OK, i could produce the complete HTML<br />
-option stuff dynamically onLoad as text and<br />
via document.write() but i need <br />
to change later on, so this is a nice twaek <br />
but wont help me with this....<br />
<br />
BTW, is the any actual documentation about <br />
this topic? develeoper.netscape.com seemed<br />
to have closed down, and most other stuff is<br />
pretty outdated...<br />
<br />
REGARDS!<br />
<br />
whitedog</div>
<hr />
<p>&nbsp;</p>
<div class="post">
<div class="posttop">
<div class="username">whitedog</div>
<div class="date">06-28-2005, 07:59 AM</div>
</div>
<div class="posttext">Hey Folks, wazzup?<br />
<br />
Anyone any ideas? <br />
Nor have this ever seen in some documentation<br />
and let me know where to find??<br />
<br />
Hey Guru's, HELP please!!</div>
</div>
<hr />
<p>&nbsp;</p>
<div class="post">
<div class="posttop">
<div class="username">Orc Scorcher</div>
<div class="date">06-28-2005, 08:24 AM</div>
</div>
<div class="posttext">Well, the problem is that theoretically this is dead simple but in reality IE screws up. Here's an example that works fine in better browsers but the options are invisible in IE6: &lt;select id="theSelect"&gt;&lt;/select&gt;<br />
&lt;script&gt;<br />
<br />
void function() {<br />
<br />
var select = document.getElementById("theSelect")<br />
/* Try again if the DOM tree isn't ready yet */<br />
if (!select) setTimeout(arguments.callee, 20)<br />
<br />
/* Create the optgroup, it's label and two options <br />
* then add it to the select */<br />
var optG = document.createElement("optgroup")<br />
optG.label = "First Optgroup"<br />
optG.appendChild(new Option("Option 1"))<br />
optG.appendChild(new Option("Option 2"))<br />
select.appendChild(optG)<br />
<br />
optG = document.createElement("optgroup")<br />
optG.label = "Second Optgroup"<br />
optG.appendChild(new Option("Option 3"))<br />
optG.appendChild(new Option("Option 4"))<br />
select.appendChild(optG)<br />
<br />
}()<br />
<br />
&lt;/script&gt;</div>
</div>
<hr />
<p>&nbsp;</p>
<div class="post">
<div class="posttop">
<div class="username">BigMoosie</div>
<div class="date">06-28-2005, 08:26 AM</div>
</div>
<div class="posttext">&lt;FORM name="myForm"&gt;<br />
&lt;SELECT name="mySelect"&gt;<br />
&lt;/SELECT&gt;<br />
&lt;/FORM&gt;<br />
&lt;SCRIPT type="text/javascript"&gt;<br />
var subject=document.createElement("OPTGROUP")<br />
subject.setAttribute("label", "hello");<br />
document.forms.myForm.mySelect.appendChild(subject);<br />
&lt;/SCRIPT&gt;</div>
</div>
<hr />
<p>&nbsp;</p>
<div class="post">
<div class="posttop">
<div class="username">Fang</div>
<div class="date">06-28-2005, 08:42 AM</div>
</div>
<div class="posttext">x-browser:var optG = document.createElement("optgroup")<br />
optG.label = "First Optgroup"<br />
select.appendChild(optG)<br />
var oOption = document.createElement("option");<br />
var txt = document.createTextNode("Option 1");<br />
oOption.appendChild(txt);<br />
optG.appendChild(oOption);<br />
select.appendChild(optG)<br />
<br />
or<br />
<br />
var optG = document.createElement("optgroup")<br />
optG.label = "First Optgroup"<br />
select.appendChild(optG)<br />
select.options[select.options.length] = new Option("Option 1");</div>
</div>
<p><br />
</font><br />
</font>&nbsp;</p>
<img src ="http://www.blogjava.net/CopyHoo/aggbug/246507.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/CopyHoo/" target="_blank">CopyHoo</a> 2008-12-15 22:51 <a href="http://www.blogjava.net/CopyHoo/articles/246507.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于 select 的添加 option 应该注意的问题。</title><link>http://www.blogjava.net/CopyHoo/articles/246501.html</link><dc:creator>CopyHoo</dc:creator><author>CopyHoo</author><pubDate>Mon, 15 Dec 2008 14:27:00 GMT</pubDate><guid>http://www.blogjava.net/CopyHoo/articles/246501.html</guid><wfw:comment>http://www.blogjava.net/CopyHoo/comments/246501.html</wfw:comment><comments>http://www.blogjava.net/CopyHoo/articles/246501.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/CopyHoo/comments/commentRss/246501.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/CopyHoo/services/trackbacks/246501.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 标准的做法就是 :&lt;!DOCTYPE&nbsp;html&nbsp;PUBLIC&nbsp;"-//W3C//DTD&nbsp;XHTML&nbsp;1.0&nbsp;Transitional//EN"&nbsp;"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;&lt;html&nbsp;xmlns="http...&nbsp;&nbsp;<a href='http://www.blogjava.net/CopyHoo/articles/246501.html'>阅读全文</a><img src ="http://www.blogjava.net/CopyHoo/aggbug/246501.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/CopyHoo/" target="_blank">CopyHoo</a> 2008-12-15 22:27 <a href="http://www.blogjava.net/CopyHoo/articles/246501.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>select元素的options.add 与 insertbefore的区别</title><link>http://www.blogjava.net/CopyHoo/articles/246496.html</link><dc:creator>CopyHoo</dc:creator><author>CopyHoo</author><pubDate>Mon, 15 Dec 2008 13:57:00 GMT</pubDate><guid>http://www.blogjava.net/CopyHoo/articles/246496.html</guid><wfw:comment>http://www.blogjava.net/CopyHoo/comments/246496.html</wfw:comment><comments>http://www.blogjava.net/CopyHoo/articles/246496.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/CopyHoo/comments/commentRss/246496.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/CopyHoo/services/trackbacks/246496.html</trackback:ping><description><![CDATA[<p align="left">转自:<font style="background-color: #cce8cc"><a href="http://www.cnblogs.com/boolean/archive/2007/09/02/879071.html"><font style="background-color: #cce8cc">http://www.cnblogs.com/boolean/archive/2007/09/02/879071.html</font></a></font><br />
</p>
<p>之前写了<a href="http://www.cnblogs.com/boolean/archive/2007/04/18/718691.html">js checkbox.checked=true在document.body.appendChild(checkbox)前与后赋值</a>，提到如果想改变元素的视觉效果（checkbox.checked=true会打钩），请在把元素添加到页面上再为其赋值，否则赋值无效。下拉框元素也有这样的问题，比如在设置其selectedIndex属性时，会看到当前被选中的Item，浏览器重新绘画了这个元素。在某些情况下会出现这样的情况：用insertBefore方法添加了多个选项后，设置其selectedIndex不能起到效果，用options.add则不会。他们到底有什么区别呢？&nbsp;</p>
<p>测试代码如下：<br />
</p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #0000ff">&lt;!</span><span style="color: #ff00ff">DOCTYPE&nbsp;html&nbsp;PUBLIC&nbsp;"-//W3C//DTD&nbsp;XHTML&nbsp;1.0&nbsp;Transitional//EN"&nbsp;"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">html&nbsp;</span><span style="color: #ff0000">xmlns</span><span style="color: #0000ff">="http://www.w3.org/1999/xhtml"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">head</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">title</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">Untitled&nbsp;Page</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">title</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">head</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">body&nbsp;</span><span style="color: #ff0000">onload</span><span style="color: #0000ff">="f()"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">select&nbsp;</span><span style="color: #ff0000">id</span><span style="color: #0000ff">="s"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">select</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">body</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<br />
</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">script</span><span style="color: #0000ff">&gt;</span><span style="color: #000000; background-color: #f5f5f5"><br />
</span><span style="color: #0000ff; background-color: #f5f5f5">function</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;f(){<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff; background-color: #f5f5f5">for</span><span style="color: #000000; background-color: #f5f5f5">(</span><span style="color: #0000ff; background-color: #f5f5f5">var</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;i</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">0</span><span style="color: #000000; background-color: #f5f5f5">;&nbsp;i</span><span style="color: #000000; background-color: #f5f5f5">&lt;</span><span style="color: #000000; background-color: #f5f5f5">10</span><span style="color: #000000; background-color: #f5f5f5">;&nbsp;i</span><span style="color: #000000; background-color: #f5f5f5">++</span><span style="color: #000000; background-color: #f5f5f5">){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff; background-color: #f5f5f5">var</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;option&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;document.createElement('option')<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; background-color: #f5f5f5">//</span><span style="color: #008000; background-color: #f5f5f5">s.insertBefore(option)</span><span style="color: #008000; background-color: #f5f5f5"><br />
</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s.options.add(option)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;option.innerText&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;'hello'&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">+</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;i<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;option.value&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;i<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;s.selectedIndex&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">4</span><span style="color: #000000; background-color: #f5f5f5"><br />
}<br />
</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">script</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">html</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span></div>
<p>总结：这也算一个有点奇妙的问题吧。</p>
<img src ="http://www.blogjava.net/CopyHoo/aggbug/246496.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/CopyHoo/" target="_blank">CopyHoo</a> 2008-12-15 21:57 <a href="http://www.blogjava.net/CopyHoo/articles/246496.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>工程在不断改正后，在web 上面没有显示出来的原因解析。</title><link>http://www.blogjava.net/CopyHoo/articles/246400.html</link><dc:creator>CopyHoo</dc:creator><author>CopyHoo</author><pubDate>Mon, 15 Dec 2008 05:45:00 GMT</pubDate><guid>http://www.blogjava.net/CopyHoo/articles/246400.html</guid><wfw:comment>http://www.blogjava.net/CopyHoo/comments/246400.html</wfw:comment><comments>http://www.blogjava.net/CopyHoo/articles/246400.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/CopyHoo/comments/commentRss/246400.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/CopyHoo/services/trackbacks/246400.html</trackback:ping><description><![CDATA[<br />
首先说这个。。<br />
用的是 eclipse ，他有一个 Build A<font style="background-color: #cce8cc">utomaticlly,<br />
由于前段时间都是在调整 jsp 页面，而每次打开 eclispe 的时候，都会因为 Build Automaticlly 而耗费很长时间，于是就将这个功能关闭了，现在修改一个 BUG ,要改到类文件，但是改了之后，依照习惯，直接保存就行了，但是页面上显示不出来我修改的地方。（主要是数据请求，数据处理），这些结果都是原来的。<br />
<br />
<br />
想了半天，才回忆起来，我们的 Ctrl + s 在 eclipse 被自动编译就是因为这个 Build Automaticlly 开着的啊。！！<br />
<br />
</font>
<img src ="http://www.blogjava.net/CopyHoo/aggbug/246400.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/CopyHoo/" target="_blank">CopyHoo</a> 2008-12-15 13:45 <a href="http://www.blogjava.net/CopyHoo/articles/246400.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于页面以及 iframe 造成的缩进。</title><link>http://www.blogjava.net/CopyHoo/articles/246333.html</link><dc:creator>CopyHoo</dc:creator><author>CopyHoo</author><pubDate>Mon, 15 Dec 2008 02:29:00 GMT</pubDate><guid>http://www.blogjava.net/CopyHoo/articles/246333.html</guid><wfw:comment>http://www.blogjava.net/CopyHoo/comments/246333.html</wfw:comment><comments>http://www.blogjava.net/CopyHoo/articles/246333.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/CopyHoo/comments/commentRss/246333.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/CopyHoo/services/trackbacks/246333.html</trackback:ping><description><![CDATA[<br />
body{<br />
&nbsp; margin:0px;<br />
&nbsp; padding:0px;<br />
}
<img src ="http://www.blogjava.net/CopyHoo/aggbug/246333.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/CopyHoo/" target="_blank">CopyHoo</a> 2008-12-15 10:29 <a href="http://www.blogjava.net/CopyHoo/articles/246333.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于设置了 base 之后，用 iframe 等定位 src 时不好处理解决方法</title><link>http://www.blogjava.net/CopyHoo/articles/246321.html</link><dc:creator>CopyHoo</dc:creator><author>CopyHoo</author><pubDate>Mon, 15 Dec 2008 02:01:00 GMT</pubDate><guid>http://www.blogjava.net/CopyHoo/articles/246321.html</guid><wfw:comment>http://www.blogjava.net/CopyHoo/comments/246321.html</wfw:comment><comments>http://www.blogjava.net/CopyHoo/articles/246321.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/CopyHoo/comments/commentRss/246321.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/CopyHoo/services/trackbacks/246321.html</trackback:ping><description><![CDATA[<p><font style="background-color: #cce8cc">折中解决方案: 让 src 指向一个 Controller ，然后 Controller 里头 forward 到一</font></p>
<p><font style="background-color: #cce8cc">个 jsp 页面</font></p>
<img src ="http://www.blogjava.net/CopyHoo/aggbug/246321.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/CopyHoo/" target="_blank">CopyHoo</a> 2008-12-15 10:01 <a href="http://www.blogjava.net/CopyHoo/articles/246321.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[转]由表单中onsubmit="return false;"想到的</title><link>http://www.blogjava.net/CopyHoo/articles/246279.html</link><dc:creator>CopyHoo</dc:creator><author>CopyHoo</author><pubDate>Sun, 14 Dec 2008 14:31:00 GMT</pubDate><guid>http://www.blogjava.net/CopyHoo/articles/246279.html</guid><wfw:comment>http://www.blogjava.net/CopyHoo/comments/246279.html</wfw:comment><comments>http://www.blogjava.net/CopyHoo/articles/246279.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/CopyHoo/comments/commentRss/246279.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/CopyHoo/services/trackbacks/246279.html</trackback:ping><description><![CDATA[<div class="t_msgfont" id="postmessage_112">
<p>转自: <a href="http://www.cnblogs.com/yoyozhou/archive/2007/02/12/648375.html">http://www.cnblogs.com/yoyozhou/archive/2007/02/12/648375.html</a></p>
<p><br />
</p>
<p><br />
</p>
<p>众所周知，在表单中加上<strong><font color="#ff0000">onsubmit</font></strong>="<strong><font color="#ff0000">return</font></strong> <strong><font color="#ff0000">false;</font></strong>"可以阻止表单提交。 <br />
下面是简单的一小段代码： <br />
</p>
<div class="code_title">代码</div>
<div class="code_div">
<pre> <span class="punct">&lt;</span><span class="ident">form</span> <span class="ident">action</span><span class="punct">="</span><span class="string">index.jsp</span><span class="punct">"</span> <span class="ident">method</span><span class="punct">="</span><span class="string">post</span><span class="punct">"</span> <span class="ident"><strong><font color="#ff0000">onsubmit</font></strong></span><span class="punct">="</span><span class="string">submitTest();</span><span class="punct">"&gt;</span>
<br />
<span class="punct">&lt;</span><span class="constant">INPUT</span> <span class="ident">value</span><span class="punct">="</span><span class="string">www</span><span class="punct">"&gt;</span>
<br />
<span class="punct">&lt;</span><span class="ident">input</span> <span class="ident">type</span><span class="punct">="</span><span class="string">submit</span><span class="punct">"</span> <span class="ident">value</span><span class="punct">="</span><span class="string">submit</span><span class="punct">"&gt;</span>
<br />
<span class="punct">&lt;/</span><span class="regex">form&gt;<br />
<p>&nbsp;</p>
<br />
<p>&lt;SCRIPT LANGUAGE="JavaScript"&gt;<br />
<br />
&lt;!--<br />
<br />
function submitTest() {<br />
<br />
</p>
</span><span class="punct">//</span> 一些逻辑判断<br />
<br />
<span class="keyword"><strong><font color="#ff0000">return</font></strong></span> <span class="constant">false</span><span class="punct">;</span>
<br />
<span class="punct">}</span>
<br />
<span class="punct">/</span><span class="punct">/--&gt;</span>
<br />
<span class="punct">&lt;/</span><span class="regex">SCRIPT&gt;</span>
</pre>
</div>
<br />
大家判断像上面的写法，点击submit按钮该表单是否提交？
<p>&nbsp;</p>
<p>若答案为是，就不用往下看了。</p>
<p>若答案为否，错了。实际情况是表单正常提交，若想它不提交，应该将 <br />
</p>
<div class="code_title">代码</div>
<div class="code_div">
<pre> <span class="punct">&lt;</span><span class="ident">form</span> <span class="ident">action</span><span class="punct">="</span><span class="string">index.jsp</span><span class="punct">"</span> <span class="ident">method</span><span class="punct">="</span><span class="string">post</span><span class="punct">"</span> <span class="ident"><strong><font color="#ff0000">onsubmit</font></strong></span><span class="punct">="</span><span class="string">submitTest();</span><span class="punct">"&gt;</span></pre>
</div>
改为 <br />
<div class="code_title">代码</div>
<div class="code_div">
<pre> <span class="punct">&lt;</span><span class="ident">form</span> <span class="ident">action</span><span class="punct">="</span><span class="string">index.jsp</span><span class="punct">"</span> <span class="ident">method</span><span class="punct">="</span><span class="string">post</span><span class="punct">"</span> <span class="ident"><strong><font color="#ff0000">onsubmit</font></strong></span><span class="punct">="</span><span class="string"><strong><font color="#ff0000">return</font></strong> submitTest();</span><span class="punct">"&gt;</span></pre>
</div>
<p>&nbsp;</p>
<p>为何？</p>
<p>原来<strong><font color="#ff0000">onsubmit</font></strong>属性就像是&lt;form&gt;这个html对象的一个方法名，其值（一字符串）就是其方法体，默认返回true；</p>
<p>和Java一样，在该方法体中你可以写任意多个语句，包括内置函数和自定义函数，如 <br />
</p>
<div class="code_title">代码</div>
<div class="code_div">
<pre> <span class="ident"><strong><font color="#ff0000">onsubmit</font></strong></span><span class="punct">="</span><span class="string">
<br />
alert('haha'); // 内置函数<br />
<br />
submitTest();  // 自定义函数<br />
<br />
alert(this.tagName); // 用到了this关键词<br />
<br />
......(任意多条语句)<br />
<br />
<strong><font color="#ff0000">return</font></strong> <strong><font color="#ff0000">false;</font></strong><br />
<br />
</span><span class="punct">"</span></pre>
</div>
<br />
就相当于 <br />
<div class="code_title">代码</div>
<div class="code_div">
<pre> <span class="constant">Form</span><span class="punct">.</span><span class="ident">prototype</span><span class="punct">.</span><span class="ident"><strong><font color="#ff0000">onsubmit</font></strong></span> <span class="punct">=</span> <span class="ident">function</span><span class="punct">()</span> <span class="punct">{</span>
<br />
<span class="ident">alert</span><span class="punct">('</span><span class="string">haha</span><span class="punct">');</span> <span class="punct">/</span><span class="punct">/</span> 内置函数<br />
<br />
<span class="ident">submitTest</span><span class="punct">();</span>  <span class="punct">/</span><span class="punct">/</span> 自定义函数<br />
<br />
<span class="ident">alert</span><span class="punct">(</span><span class="ident">this</span><span class="punct">.</span><span class="ident">tagName</span><span class="punct">);</span> <span class="punct">/</span><span class="punct">/</span> 用到了<span class="ident">this关键词</span>
<br />
<span class="punct">......(任意多条语句)</span>
<br />
<span class="keyword"><strong><font color="#ff0000">return</font></strong></span> <span class="constant">false</span><span class="punct">;</span>
<br />
<span class="punct">};</span></pre>
</div>
<br />
这样的话你就覆写了(override)其默认方法（默认返回true） <br />
大家注意到方法体中可以用this这个关键词，这里即代表了&lt;form&gt;的对象实例。
<p>&nbsp;</p>
<p>经过这样的分析后，以上情况就不难理解了： <br />
</p>
<div class="code_title">代码</div>
<div class="code_div">
<pre> <span class="punct">&lt;</span><span class="ident">form</span> <span class="ident">action</span><span class="punct">="</span><span class="string">index.jsp</span><span class="punct">"</span> <span class="ident">method</span><span class="punct">="</span><span class="string">post</span><span class="punct">"</span> <span class="ident"><strong><font color="#ff0000">onsubmit</font></strong></span><span class="punct">="</span><span class="string">submitTest();</span><span class="punct">"&gt;</span></pre>
</div>
这样写，override方法的效果为： <br />
<div class="code_title">代码</div>
<div class="code_div">
<pre> <span class="constant">Form</span><span class="punct">.</span><span class="ident">prototype</span><span class="punct">.</span><span class="ident"><strong><font color="#ff0000">onsubmit</font></strong></span> <span class="punct">=</span> <span class="ident">function</span><span class="punct">()</span> <span class="punct">{</span>
<br />
<span class="ident">submitTest</span><span class="punct">();</span>
<br />
<span class="punct">};</span></pre>
</div>
<br />
在这里submitTest()虽然返回false，但我们只执行了此函数，没有对其结果进行任何处理。而 <br />
<div class="code_title">代码</div>
<div class="code_div">
<pre> <span class="punct">&lt;</span><span class="ident">form</span> <span class="ident">action</span><span class="punct">="</span><span class="string">index.jsp</span><span class="punct">"</span> <span class="ident">method</span><span class="punct">="</span><span class="string">post</span><span class="punct">"</span> <span class="ident"><strong><font color="#ff0000">onsubmit</font></strong></span><span class="punct">="</span><span class="string"><strong><font color="#ff0000">return</font></strong> submitTest();</span><span class="punct">"&gt;</span></pre>
</div>
<br />
override方法的效果为： <br />
<div class="code_title">代码</div>
<div class="code_div">
<pre> <span class="constant">Form</span><span class="punct">.</span><span class="ident">prototype</span><span class="punct">.</span><span class="ident"><strong><font color="#ff0000">onsubmit</font></strong></span> <span class="punct">=</span> <span class="ident">function</span><span class="punct">()</span> <span class="punct">{</span>
<br />
<span class="keyword"><strong><font color="#ff0000">return</font></strong></span> <span class="ident">submitTest</span><span class="punct">();</span>
<br />
<span class="punct">};</span></pre>
</div>
<br />
这样，我们利用到了它的返回值，达到了预期效果。 <br />
这样理解的话我想印象会深刻得多，就不易出错了
<p>&nbsp;</p>
<p>结论： <br />
我们可以用Java里的思维方式来思考模拟JavaScript中的类似情况（JavaScript中基于prototype的面向对象技术也确实是这样做的），但他们毕竟还是有本质上的区别，如Java是强类型的，有严格的语法限制，而JavaScript是松散型的。象上述方法： <br />
</p>
<div class="code_title">代码</div>
<div class="code_div">
<pre><br />
<span class="constant">Form</span><span class="punct">.</span><span class="ident">prototype</span><span class="punct">.</span><span class="ident"><strong><font color="#ff0000">onsubmit</font></strong></span> <span class="punct">=</span> <span class="ident">function</span><span class="punct">()</span> <span class="punct">{</span>
<br />
<span class="punct">};</span></pre>
</div>
<br />
既可以有返回值，又可以没有返回值，在Java里是通不过的，毕竟Java里面不能靠方法的返回值不同来重载(overload)方法，而JavaScript中的重载要松散得多</div>
<img src ="http://www.blogjava.net/CopyHoo/aggbug/246279.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/CopyHoo/" target="_blank">CopyHoo</a> 2008-12-14 22:31 <a href="http://www.blogjava.net/CopyHoo/articles/246279.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>CSS visibility属性 </title><link>http://www.blogjava.net/CopyHoo/articles/246266.html</link><dc:creator>CopyHoo</dc:creator><author>CopyHoo</author><pubDate>Sun, 14 Dec 2008 12:59:00 GMT</pubDate><guid>http://www.blogjava.net/CopyHoo/articles/246266.html</guid><wfw:comment>http://www.blogjava.net/CopyHoo/comments/246266.html</wfw:comment><comments>http://www.blogjava.net/CopyHoo/articles/246266.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/CopyHoo/comments/commentRss/246266.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/CopyHoo/services/trackbacks/246266.html</trackback:ping><description><![CDATA[<p>&nbsp;本章要点：<span style="color: red">&nbsp;这个属性经常用，但是我们要找出他的特点：visibility 属性设置为 invisible 时，会占页面空间但是 display 属性不会占据空间。</span><br />
<br />
转自: <font style="background-color: #cce8cc">http://www.w3pop.com/learn/view/doc/pr_class_visibility/</font><br />
<br />
</p>
<p>The visibility property sets if an element should be visible or invisible.<br />
visibility属性可设置元素为可见还是不可见</p>
<p><strong>Note:</strong> Invisible elements takes up space on the page. Use the "display" property to create invisible elements that do not take up space. <br />
注意：不可见的元素会占据页面的空间。可以使用"display"属性来让不可见的元素同时不占据页面的空间</p>
<p><strong>Note:</strong> This property is used with scripts to create Dynamic HTML.<br />
注意：这个属性经常在建立动态HTML的时候用到</p>
<p><strong>Inherited:</strong> No<br />
继承性：无</p>
<h2>Example举例</h2>
<p>
<table class="ex" cellspacing="0" cellpadding="3" width="100%" border="1">
    <tbody>
        <tr>
            <td valign="top">p<br />
            {<br />
            visibility: visible<br />
            } </td>
        </tr>
    </tbody>
</table>
</p>
<h2>Possible Values<br />
可能用到的值</h2>
<p>
<table class="ex" cellspacing="0" cellpadding="3" width="100%" border="1">
    <tbody>
        <tr>
            <th valign="top" align="left">Value</th>
            <th valign="top" align="left">描述</th>
        </tr>
        <tr>
            <td valign="top">visible</td>
            <td valign="top">The element is visible<br />
            元素可见</td>
        </tr>
        <tr>
            <td valign="top">hidden</td>
            <td valign="top">The element is invisible<br />
            元素不可见</td>
        </tr>
        <tr>
            <td valign="top">collapse</td>
            <td valign="top">When used in table elements, this value removes a row or column, but it does not affect the table layout. The space taken up by the row or column will be available for other content. If this value is used on other elements, it renders as "hidden"<br />
            当在表格元素中使用的时候，这个值可以移除一行或是一列，但它不会影响到表格的布局。被行或列所占据的空间对其他内容来说依然是有效的。如果这个值用到别的元素上它所反馈的效果就跟"hidden"一样。</td>
        </tr>
    </tbody>
</table>
</p>
<img src ="http://www.blogjava.net/CopyHoo/aggbug/246266.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/CopyHoo/" target="_blank">CopyHoo</a> 2008-12-14 20:59 <a href="http://www.blogjava.net/CopyHoo/articles/246266.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>select挡住div的5种解决方法</title><link>http://www.blogjava.net/CopyHoo/articles/246263.html</link><dc:creator>CopyHoo</dc:creator><author>CopyHoo</author><pubDate>Sun, 14 Dec 2008 12:04:00 GMT</pubDate><guid>http://www.blogjava.net/CopyHoo/articles/246263.html</guid><wfw:comment>http://www.blogjava.net/CopyHoo/comments/246263.html</wfw:comment><comments>http://www.blogjava.net/CopyHoo/articles/246263.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/CopyHoo/comments/commentRss/246263.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/CopyHoo/services/trackbacks/246263.html</trackback:ping><description><![CDATA[<div class="tit">select挡住div的5种解决方法</div>
<div class="date">2007年04月02日 星期一 下午 04:42</div>
<table style="table-layout: fixed">
    <tbody>
        <tr>
            <td>
            <div class="cnt" id="blog_text">
            <p>&nbsp;</p>
            <div class="cnt">
            <div class="cnt">
            <p>在IE中,select属于window类型控件，它会&#8220;挡住&#8221;所有非window类型控件<br />
            可以这么理解，div这样的组件是在浏览器客户区使用代码&#8220;渲染&#8221;的，<br />
            他们被渲染在客户区的绘画表面上，<br />
            而select是使用的标准windows控件，只是作为客户区的子控件放置而已，<br />
            它会覆盖所有客户区绘画表面上&#8220;画&#8221;出来的一切，但不一定会覆盖其他类型的window控件，<br />
            比如iframe和其他的select，如果你使用过类似Delphi这样的环境就会自然理解。IE7解决了此类BUG。</p>
            <p>有多种种办法;<br />
            1. 修改select，不用标准select，而是自己用其他html元素模拟<br />
            2. 修改你的div，使用iframe。<br />
            3. 在div被显示的时候或者到达select所在位置时隐藏select<br />
            4. 在div中或div的同一坐标上，用相同尺寸的iframe先遮挡一下，然后在iframe上显示div的内容。<br />
            5.Object对象的优先度较高,可以挡住select框</p>
            <p>以下例子系网上资源整理</p>
            <p>原址：<a href="http://hi.baidu.com/suofang/blog/item/72f2f7ed23f2324e78f055c4.html">http://hi.baidu.com/suofang/blog/item/72f2f7ed23f2324e78f055c4.html</a><br />
            </p>
            <p><strong>第4种方法的例子：最好的方法：iframe来当作div的底</strong></p>
            <p>Div被Select挡住，是一个比较常见的问题。&nbsp;&nbsp;&nbsp;<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 有的朋友通过把div的内容放入iframe或object里来解决。&nbsp;&nbsp;&nbsp;<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 可惜这样会破坏页面的结构，互动性不大好。&nbsp;&nbsp;&nbsp;<br />
            &nbsp;&nbsp;&nbsp;&nbsp;<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 这里采用的方法是：&nbsp;&nbsp;&nbsp;<br />
            &nbsp;&nbsp;&nbsp;&nbsp;<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 虽说div直接盖不住select&nbsp;&nbsp;&nbsp;<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 但是div可以盖iframe，而iframe可以盖select,&nbsp;&nbsp;&nbsp;<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 所以，把一个iframe来当作div的底，&nbsp;&nbsp;&nbsp;<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 这个div就可以盖住select了.&nbsp;&nbsp;&nbsp;</p>
            <p><br />
            &lt;html&gt;<br />
            &lt;head&gt;<br />
            &lt;script&gt;<br />
            function DivSetVisible(state)<br />
            {<br />
            var DivRef = document.getElementById('PopupDiv');<br />
            var IfrRef = document.getElementById('DivShim');<br />
            if(state)<br />
            {<br />
            DivRef.style.display = "block";<br />
            IfrRef.style.width = DivRef.offsetWidth;<br />
            IfrRef.style.height = DivRef.offsetHeight;<br />
            IfrRef.style.top = DivRef.style.top;<br />
            IfrRef.style.left = DivRef.style.left;<br />
            IfrRef.style.zIndex = DivRef.style.zIndex - 1;<br />
            IfrRef.style.display = "block";<br />
            }<br />
            else<br />
            {<br />
            DivRef.style.display = "none";<br />
            IfrRef.style.display = "none";<br />
            }<br />
            }<br />
            &lt;/script&gt;<br />
            &lt;/head&gt;<br />
            &lt;body&gt;<br />
            &lt;form&gt;<br />
            &lt;select&gt;<br />
            &lt;option&gt;A Select Box is Born ....&lt;/option&gt;<br />
            &lt;/select&gt;<br />
            &lt;/form&gt;<br />
            &lt;div id="PopupDiv" style="position:absolute; top:25px; left:50px; padding:4px; display:none; background-color:#000000; color:#ffffff; z-index:100"&gt;<br />
            .... and a DIV can cover it up&lt;br/&gt;through the help of an IFRAME.<br />
            &lt;/div&gt;<br />
            &lt;iframe id="DivShim" src="javascript:false;" scrolling="no" frameborder="0" style="position:absolute; top:0px; left:0px; display:none;"&gt;<br />
            &lt;/iframe&gt;<br />
            &lt;br/&gt;<br />
            &lt;br/&gt;<br />
            &lt;a href="#" onclick="DivSetVisible(true)"&gt;Click to show DIV.&lt;/a&gt;<br />
            &lt;br/&gt;<br />
            &lt;br/&gt;<br />
            &lt;a href="#" onclick="DivSetVisible(false)"&gt;Click to hide DIV.&lt;/a&gt;<br />
            &lt;/body&gt;<br />
            &lt;/html&gt;<br />
            </p>
            <p><strong>第3种方法的例子：最直接的方法:隐藏下拉框.</strong></p>
            <p>下面提供的是一个比较通用的一组函数:</p>
            <p>test.htm</p>
            <p>------------</p>
            <p>&lt;script&gt;<br />
            var HideElementTemp = new Array();<br />
            //点击菜单时，调用此的函数,菜单对象<br />
            function cal_hideElementAll(obj){ <br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cal_HideElement("IMG",obj);<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cal_HideElement("SELECT",obj);<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cal_HideElement("OBJECT",obj);<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cal_HideElement("IFRAME",obj);<br />
            }<br />
            function cal_HideElement(strElementTagName,obj){<br />
            try{<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var showDivElement = obj;<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var calendarDiv = obj;<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var intDivLeft = cal_GetOffsetLeft(showDivElement);<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var intDivTop = cal_GetOffsetTop(showDivElement);//+showDivElement.offsetHeight;<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //HideElementTemp=new Array()<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(i=0;i&lt;window.document.all.tags(strElementTagName).length; i++){<br />
            var objTemp = window.document.all.tags(strElementTagName)[i];<br />
            if(!objTemp||!objTemp.offsetParent)<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; continue;<br />
            var intObjLeft=cal_GetOffsetLeft(objTemp);<br />
            var intObjTop=cal_GetOffsetTop(objTemp);<br />
            if(((intObjLeft+objTemp.clientWidth)&gt;intDivLeft)&amp;&amp;<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (intObjLeft&lt;intDivLeft+calendarDiv.style.posWidth)&amp;&amp;<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (intObjTop+objTemp.clientHeight&gt;intDivTop)&amp;&amp;<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (intObjTop&lt;intDivTop+calendarDiv.style.posHeight)){<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //var intTempIndex=HideElementTemp.length;//已经有的长度<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //save elementTagName is stutas<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //HideElementTemp[intTempIndex]=new Array(objTemp,objTemp.style.visibility);<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; HideElementTemp[HideElementTemp.length]=objTemp<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; objTemp.style.visibility="hidden";<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
            }catch(e){alert(e.message)<br />
            }<br />
            }</p>
            <p>function cal_ShowElement(){<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var i;<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(i=0;i&lt;HideElementTemp.length; i++){<br />
            var objTemp = HideElementTemp[i]<br />
            if(!objTemp||!objTemp.offsetParent)<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; continue;<br />
            objTemp.style.visibility=''<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; HideElementTemp=new Array();<br />
            }<br />
            function cal_GetOffsetLeft(src){<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var set=0;<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(src &amp;&amp; src.name!="divMain"){<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (src.offsetParent){<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; set+=src.offsetLeft+cal_GetOffsetLeft(src.offsetParent);<br />
            }<br />
            if(src.tagName.toUpperCase()!="BODY"){<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var x=parseInt(src.scrollLeft,10);<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(!isNaN(x))<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; set-=x;<br />
            }<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return set;<br />
            }</p>
            <p>function cal_GetOffsetTop(src){<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var set=0;<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(src &amp;&amp; src.name!="divMain"){<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (src.offsetParent){<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; set+=src.offsetTop+cal_GetOffsetTop(src.offsetParent);<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
            if(src.tagName.toUpperCase()!="BODY"){<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var y=parseInt(src.scrollTop,10);<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(!isNaN(y))<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; set-=y;<br />
            }<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return set;<br />
            }</p>
            <p>&lt;/script&gt;<br />
            &lt;select&gt;&lt;/select&gt;<br />
            &lt;select&gt;&lt;/select&gt;<br />
            &lt;div style="position:absolute;left:0;top:0;width:100;height:100;background-color:red" onclick="cal_hideElementAll(this)"&gt;<br />
            点击让select隐藏<br />
            &lt;/div&gt;<br />
            &lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;<br />
            &lt;input type="button" value="点击让select显示" onclick="cal_ShowElement()"&gt;</p>
            <p>以上这种方法,如果对于select框数目少,相对固定的话,直接用obj.style.visibility="hidden"这样进行隐藏是更直接的.</p>
            <p><strong>第2种方法：用iframe作载体</strong></p>
            <p>以下是一简单的例子:</p>
            <p>-----------</p>
            <p>&lt;html&gt;<br />
            &lt;head&gt;<br />
            &lt;meta http-equiv="Content-Type" content="text/html; charset=gb2312"&gt;<br />
            &lt;meta name="GENERATOR" content="Microsoft FrontPage 4.0"&gt;<br />
            &lt;meta name="ProgId" content="FrontPage.Editor.Document"&gt;<br />
            &lt;title&gt;简单菜单&lt;/title&gt;<br />
            &lt;!--<br />
            提供定位函数，用iframe作载体，不会被select挡住<br />
            By Fason(2003-5-21)<br />
            --&gt;<br />
            &lt;style id=s&gt;<br />
            #div1{<br />
            position:absolute;<br />
            z-index:100;<br />
            width:100;<br />
            height:130;<br />
            background-color:#d2e8ff;<br />
            border:1 solid black;<br />
            }<br />
            div{cursor:hand;font-size:12px;}<br />
            a{text-decoration:none;color:red;font-size:12px}<br />
            &lt;/style&gt;<br />
            &lt;/head&gt;<br />
            &lt;body&gt;<br />
            &lt;script&gt;<br />
            function window.onload(){<br />
            var shtml=div1.innerHTML;<br />
            var ifm=document.createElement("&lt;iframe frameborder=0 marginheight=0 marginwidth=0 hspace=0 vspace=0 scrolling=no&gt;&lt;/iframe&gt;")<br />
            ifm.style.width=div1.offsetWidth<br />
            ifm.style.height=div1.offsetHeight<br />
            ifm.name=ifm.uniqueID<br />
            div1.innerHTML=""<br />
            div1.appendChild(ifm)<br />
            window.frames[ifm.name].document.write(s.outerHTML+"&lt;body leftmargin=0 topmargin=0&gt;"+shtml+"&lt;/body&gt;")<br />
            }</p>
            <p>function show(){<br />
            with(document.all.img1){<br />
            x=offsetLeft;<br />
            y=offsetTop;<br />
            objParent=offsetParent;<br />
            while(objParent.tagName.toUpperCase()!= "BODY"){<br />
            x+=objParent.offsetLeft;<br />
            y+=objParent.offsetTop;<br />
            objParent = objParent.offsetParent;<br />
            }<br />
            y+=offsetHeight-1<br />
            }<br />
            with(document.all.div1.style){<br />
            pixelLeft=x<br />
            pixelTop=y<br />
            visibility=''<br />
            }<br />
            }<br />
            function hide(){<br />
            document.all.div1.style.visibility='hidden'<br />
            }<br />
            &lt;/script&gt;<br />
            &lt;img id=img1 onmouseover="show()" onmouseout="hide()" src="ie.gif"&gt;&lt;br&gt;&lt;select&gt;&lt;/select&gt;<br />
            &lt;div id=div1 onmouseover="style.visibility=''" onmouseout="style.visibility='hidden'" style="visibility:hidden;"&gt;<br />
            &lt;div href="<a href="http://www.csdn.net/"><font color="#800080">http://www.csdn.net</font></a>" onmouseover="style.backgroundColor='highlight'" onmouseout="style.backgroundColor=''" onclick="window.open(href)"&gt;中国程序员&lt;/div&gt;<br />
            &lt;div href="<a href="http://www.sohu.com/">http://www.sohu.com</a>" onmouseover="style.backgroundColor='highlight'" onmouseout="style.backgroundColor=''" onclick="window.open(href)"&gt;sohu&lt;/div&gt;<br />
            &lt;/div&gt;<br />
            &lt;/body&gt;<br />
            &lt;/html&gt;</p>
            <p><strong>第5种方法：Object对象的优先度较高,可以挡住select框</strong></p>
            <p>&lt;OBJECT id=aa style="display:none;z-index:1000; position:absolute; top:0; left:0; width:152; height: 200;" type="text/x-scriptlet" data="about:&lt;body&gt;&lt;div style='position:absolute;left:0;top:0;width:152;height:200;font:14;color:white;background:black;border:1 solid black'&gt;test&lt;/div&gt;"&gt;&lt;/OBJECT&gt;<br />
            &lt;select&gt;&lt;option&gt;hellohellohellohello&lt;/select&gt;&lt;button onclick=aa.style.display=aa.style.display=="none"?"":"none"&gt;test&lt;/button&gt;</p>
            <p>这种方法虽然也简单,但对复杂的层是来说还不是好的解决方法.<br />
            </p>
            </div>
            </div>
            </div>
            </td>
        </tr>
    </tbody>
</table>
<img src ="http://www.blogjava.net/CopyHoo/aggbug/246263.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/CopyHoo/" target="_blank">CopyHoo</a> 2008-12-14 20:04 <a href="http://www.blogjava.net/CopyHoo/articles/246263.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于 Firefox 下的 Web</title><link>http://www.blogjava.net/CopyHoo/articles/245864.html</link><dc:creator>CopyHoo</dc:creator><author>CopyHoo</author><pubDate>Fri, 12 Dec 2008 02:39:00 GMT</pubDate><guid>http://www.blogjava.net/CopyHoo/articles/245864.html</guid><wfw:comment>http://www.blogjava.net/CopyHoo/comments/245864.html</wfw:comment><comments>http://www.blogjava.net/CopyHoo/articles/245864.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/CopyHoo/comments/commentRss/245864.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/CopyHoo/services/trackbacks/245864.html</trackback:ping><description><![CDATA[Bug 早已经被我抛弃了，以为已经解决掉了，但是测试人员总是说，怎么图片上传总是无效的！！<br />
图片传不上去，我就不肯听，因为我测试是很正常的。<br />
后来测试人员在过了 n 多天之后还发现问题存在，于是就继续飞鸽给我，说图片怎么上传无效。<br />
于是就再测了一下，我自己测试的时候，始终是好的。<br />
一系列过程走下来之后，又用 Firefox 测了一遍。<br />
用 firebug 就发现了真正的原因。。。<br />
<br />
我放置了一个隐藏域，表明用户是否进行了上传操作。原来这个隐藏域没有加上 id ，而该隐藏域默认为 false 的。所以图片一直传不上去，而那位测试人员，用的就是 Firefox 浏览器。。。<br />
<br />
该死的地方有两个：<br />
1. 怎么总是不规范，忘了 Firefox 的洁癖? 不为页面元素加上 id <br />
2. 为什么测试人员不告诉我他是用的哪一个浏览器进行的测试？。！
<img src ="http://www.blogjava.net/CopyHoo/aggbug/245864.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/CopyHoo/" target="_blank">CopyHoo</a> 2008-12-12 10:39 <a href="http://www.blogjava.net/CopyHoo/articles/245864.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>举报 - 这一网页功能的设计实现。</title><link>http://www.blogjava.net/CopyHoo/articles/245657.html</link><dc:creator>CopyHoo</dc:creator><author>CopyHoo</author><pubDate>Thu, 11 Dec 2008 03:58:00 GMT</pubDate><guid>http://www.blogjava.net/CopyHoo/articles/245657.html</guid><wfw:comment>http://www.blogjava.net/CopyHoo/comments/245657.html</wfw:comment><comments>http://www.blogjava.net/CopyHoo/articles/245657.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/CopyHoo/comments/commentRss/245657.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/CopyHoo/services/trackbacks/245657.html</trackback:ping><description><![CDATA[<br />
1. 将 &#8220;举报&#8221;的内容（当然还要隐藏的id 已经所针对的评论）以短消息的形式发送给管理员。<br />
2. 将处理的页面返还给 用户 <br />
&nbsp; 当然，向 csdn 那样，用户帖子和评论都放在一个版面上面，还比较好做，因为你直接将当前页面发给用户&nbsp;就够了， 但是，如果你的评论又分页，那么这个评论迟早就会被分配到其他的分页页面。<br />
&nbsp; 所以，你要保证你发送给用户的页面地址能够获取到用户所关心的举报处理结果，<br />
&nbsp;那么请遵循一下步骤：<br />
&nbsp;&nbsp; @1 保证评论的 id<br />
&nbsp;&nbsp; @2 获取评论所在的页数，这就包括<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 获取指定的评论所在的行数：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 利用 mysql 可以这样不严谨的实现:&nbsp;&nbsp;<br />
&nbsp;&nbsp;
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img id="Codehighlighter1_0_23_Open_Image" onclick="this.style.display='none'; Codehighlighter1_0_23_Open_Text.style.display='none'; Codehighlighter1_0_23_Closed_Image.style.display='inline'; Codehighlighter1_0_23_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_0_23_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_0_23_Closed_Text.style.display='none'; Codehighlighter1_0_23_Open_Image.style.display='inline'; Codehighlighter1_0_23_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /><span id="Codehighlighter1_0_23_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff">/**/</span><span id="Codehighlighter1_0_23_Open_Text"><span style="color: #008080">/*</span><span style="color: #008080">&nbsp;查找指定的&nbsp;&nbsp;id&nbsp;&nbsp;的评论在第几页&nbsp;</span><span style="color: #008080">*/</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">select</span><span style="color: #000000">&nbsp;</span><span style="color: #ff00ff">count</span><span style="color: #000000">(</span><span style="color: #808080">*</span><span style="color: #000000">)&nbsp;+1 &nbsp;</span><span style="color: #0000ff">from</span><span style="color: #000000">&nbsp;hr_sub_comm<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">where</span><span style="color: #000000">&nbsp;comm_id&nbsp;</span><span style="color: #808080">&gt;</span><span style="color: #000000">&nbsp;</span><span style="font-weight: bold; color: #800000">19</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">select</span><span style="color: #000000">&nbsp;</span><span style="color: #ff00ff">count</span><span style="color: #000000">(</span><span style="color: #808080">*</span><span style="color: #000000">)&nbsp;+1 </span><span style="color: #0000ff">from</span><span style="color: #000000">&nbsp;hr_sub_comm<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">where</span><span style="color: #000000">&nbsp;comm_create_time&nbsp;</span><span style="color: #808080">&gt;</span><span style="color: #000000">&nbsp;指定的时间</span></div>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 获取指定的行数所在的页:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;要取整:&nbsp;&nbsp; <font style="background-color: #cce8cc">select (当前行数-1)/每页行数 + 1&nbsp;&nbsp;&nbsp; 你可以通过数据库，当然，最好直接通过程序换算出来。<br />
<br />
&nbsp; 然后我们在跳转页面的时候，定位到举报的评论所在的页面就&nbsp; OK 了。。<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;</font><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
<img src ="http://www.blogjava.net/CopyHoo/aggbug/245657.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/CopyHoo/" target="_blank">CopyHoo</a> 2008-12-11 11:58 <a href="http://www.blogjava.net/CopyHoo/articles/245657.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>