﻿<?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-kooyee ‘s blog-随笔分类-网页设计 </title><link>http://www.blogjava.net/Javawind/category/24933.html</link><description /><language>zh-cn</language><lastBuildDate>Mon, 04 Feb 2008 03:22:33 GMT</lastBuildDate><pubDate>Mon, 04 Feb 2008 03:22:33 GMT</pubDate><ttl>60</ttl><item><title>[HTML] 关于DOCTYPE </title><link>http://www.blogjava.net/Javawind/archive/2008/02/04/179253.html</link><dc:creator>kooyee</dc:creator><author>kooyee</author><pubDate>Sun, 03 Feb 2008 23:11:00 GMT</pubDate><guid>http://www.blogjava.net/Javawind/archive/2008/02/04/179253.html</guid><wfw:comment>http://www.blogjava.net/Javawind/comments/179253.html</wfw:comment><comments>http://www.blogjava.net/Javawind/archive/2008/02/04/179253.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Javawind/comments/commentRss/179253.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Javawind/services/trackbacks/179253.html</trackback:ping><description><![CDATA[<p>DOCTYPE不可怕，但把它拿走，会让你怕了又怕。</p>
<p>最近在蓝色理想转悠，发现很多朋友提出有关DIV+CSS排版问题，以及IE与FF的兼容问题。怎么问的都有，结果就是一个——显示很奇怪，很难调整。我们浏览的大多数网站，或者用Dreamweaver创建一个新的网页文档时，源码的顶部都会有DocType声明，但是很多人没有注意它，甚至在创作时候直接将它删掉，其实这往往就是噩梦的开始。在遵循标准的任何Web文档中，DOCTYPE都是一项必需的元素。它会影响代码验证，并决定了浏览器最终如何显示你的web文档。为了避免DOCTYPE的问题重复出现，我根据手头的资料整理了这篇文档，以备自己及有兴趣的朋友参考。</p>
<p>在默认情况下，FF和IE的解释标准是不一样的，也就是说，如果一个网页没有声明DOCTYPE，它就会以默认的DOCTYPE解释下面的HTML。在同一种标准下，不同浏览器的解释模型都有所差异，如果声明标准不同，不用我说，您自己想就可以了。学习网页标准，浏览器兼容，从哪里开始您自己决定，但是，请认识DOCTYPE：<br />
<br />
</p>
<p><strong><br />
一、什么是DOCTYPE</strong></p>
<p>DOCTYPE是Document Type（文档类型）的简写，在页面中，用来指定页面所使用的XHTML（或者HTML）的版本。要想制作符合标准的页面，一个必不可少的关键组成部分就是DOCTYPE声明。只有确定了一个正确的DOCTYPE，XHTML里的标识和CSS才能正常生效。<br />
</p>
<p><strong><br />
<br />
二、DOCTYPE的规则</strong></p>
<p>DOCTYPE声明的写法遵循一定的规则，它指出阅读程序应该用什么规则集来解释文档中的标记。在Web文档的情况下，&#8220;阅读程序&#8221;通常是浏览器或者校验器这样的一个程序，&#8220;规则&#8221;则是w3c所发布的一个文档类型定义（dtd）中包含的规则。<br />
每个dtd都包括标记、attributes、properties等内容，它们用于标记web文档的内容；此外还包括一些规则，它们规定了哪些标记能出现在其他哪些标记中。每个web建议标准（比如html 4 frameset和xhtml 1.0 transitional）都有自己的dtd。</p>
<p>以下是从手册上摘抄的规则：</p>
<p>语法：</p>
<p><span class="code">HTML&nbsp; 顶级元素&nbsp; 可用性 "注册//组织//类型 标签//定义&nbsp; 语言""URL" </span></p>
<p>可能值：</p>
<p><span class="code">- 顶级元素：指定 DTD 中声明的顶级元素类型。这与声明的 SGML 文档类型相对应。 HTML 默认。HTML。 <br />
- 可用性：指定正式公开标识符(FPI)是可公开访问的对象还是系统资源。 PUBLIC 默认。可公开访问的对象。SYSTEM 系统资源，如本地文件或 URL。 <br />
- 注册：指定组织是否由国际标准化组织(ISO)注册。 + 默认。组织名称已注册。 <br />
- 组织名称未注册。Internet 工程任务组(IETF)和万维网协会(W3C)并非注册的 ISO 组织。 <br />
组织：指定表明负责由 !DOCTYPE 声明引用的 DTD 的创建和维护的团体或组织的名称，即 OwnderID。 IETF IETF。 W3C W3C。 <br />
- 类型：指定公开文本类，即所引用的对象类型。 DTD 默认。DTD。 <br />
- 标签：指定公开文本描述，即对所引用的公开文本的唯一描述性名称。后面可附带版本号。 HTML 默认。HTML。 <br />
- 定义：指定文档类型定义。 <br />
　　Frameset 框架集文档。 <br />
　　Strict 排除所有 W3C 专家希望逐步淘汰的代表性属性和元素，因为样式表已经很完善了。 <br />
　　Transitional 包含除 frameSet 元素的全部内容。 <br />
- 语言：指定公开文本语言，即用于创建所引用对象的自然语言编码系统。该语言定义已编写为 ISO 639&nbsp; 语言代码(大写两个字母)。 EN 默认。英语。 <br />
- URL：指定所引用对象的位置</span> </p>
<p>为了获得正确的DOCTYPE声明，关键就是让dtd与文档所遵循的标准对应。例如，假定文档遵循的是xhtml 1.0 strict标准，文档的doctype声明就应该引用相应的dtd。另一方面，如果doctype声明指定的是xhtml dtd，但文档包含的是旧式风格的html标记，就是不恰当的；类似地，如果doctype声明指定的是html dtd，但文档包含的是xhtml 1.0 strict标记，同样是不恰当的。<br />
</p>
<p><strong><br />
<br />
三、选择什么样的DOCTYPE</strong></p>
<p>如上例所示，XHTML 1.0中有3种DTD（文档类型定义）声明可以选择：过渡的（Transitional）、严格的（Strict）和框架的（Frameset）。这里分别介绍如下。</p>
<p>1．过渡的</p>
<p>一种要求不很严格的DTD，允许在页面中使用HTML4.01的标识（符合xhtml语法标准）。过渡的DTD的写法如下：</p>
<p><span class="code">&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"<br />
"<a href="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd</a>"&gt;<br />
</span></p>
<p>没有它的话有些CSS效果不能体现<br />
<br />
2．严格的</p>
<p>一种要求严格的DTD，不允许使用任何表现层的标识和属性，例如&lt;br/&gt;等。严格的DTD的写法如下：</p>
<p><span class="code">&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"<br />
"<a href="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd</a>"&gt;</span></p>
<p>3．框架的</p>
<p>一种专门针对框架页面所使用的DTD，当页面中含有框架元素时，就要采用这种DTD。框架的DTD的写法如下：</p>
<p><span class="code">&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"<br />
"<a href="http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd</a>"&gt;</span></p>
<p>使用严格的DTD来制作页面，当然是最理想的方式。但是，对于没有深入了解Web标准的网页设计者，比较合适的是使用过渡的DTD。因为这种DTD还允许使用表现层的标识、元素和属性，比较适合大多数网页制作人员。</p>
<p><strong>四、需要注意的问题</strong></p>
<p>没什么特别的，就是一定要将DOCTYPE声明放在XHTML文档的顶部，上面哪怕多个HTML注释标记都不行。</p>
<p>最好示例代码也加上DOCTYPE，否则效果会有差异。</p>
<p><strong>经典论坛讨论</strong>：<br />
<a href="http://bbs.blueidea.com/thread-2792311-1-1.html" target="_blank">http://bbs.blueidea.com/thread-2792311-1-1.html</a></p>
<img src ="http://www.blogjava.net/Javawind/aggbug/179253.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Javawind/" target="_blank">kooyee</a> 2008-02-04 07:11 <a href="http://www.blogjava.net/Javawind/archive/2008/02/04/179253.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>让FCKeditor在 JSP和JSF 网站项目中跑起来  </title><link>http://www.blogjava.net/Javawind/archive/2007/12/01/164440.html</link><dc:creator>kooyee</dc:creator><author>kooyee</author><pubDate>Fri, 30 Nov 2007 16:47:00 GMT</pubDate><guid>http://www.blogjava.net/Javawind/archive/2007/12/01/164440.html</guid><wfw:comment>http://www.blogjava.net/Javawind/comments/164440.html</wfw:comment><comments>http://www.blogjava.net/Javawind/archive/2007/12/01/164440.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Javawind/comments/commentRss/164440.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Javawind/services/trackbacks/164440.html</trackback:ping><description><![CDATA[<span class="content">让FCKeditor在 JSP和JSF 网站项目中跑起来<br />
一、准备功夫<br />
1.1 下载最新版的FCKeditor<br />
<a href="http://www.fckeditor.net/download/" target="_blank">http://www.fckeditor.net/download/</a><br />
目前最新版是：FCKeditor 2.3.1（FCKeditor_2.3.1）和 FCKeditor.Java（FCKeditor-2.3）<br />
1.2 如果需要使用到jsf的标签库，则还需要下载fck-faces-1.5.1, 你可以到<br />
<a href="http://sourceforge.net/projects/fck-faces" target="_blank">http://sourceforge.net/projects/fck-faces</a>去下载<br />
<br />
说明：<br />
FCKeditor 2.3.1 是功能完善的可视化编辑器，文件上传管理部分功能已经支持asp,php,aspx...等等，<br />
唯独尚未支持jsp，幸运的是Simone Chiaretta制作了Java 的整合文件FCKeditor.Java。<br />
<br />
<br />
二、部署到项目中去<br />
2.1 把解压后的\FCKeditor_2.3.1\FCKeditor放到项目的WebContent目录下，等候修改<br />
2.2 把解压后的\FCKeditor-2.3\src目录复制到项目源码目录， 等候修改<br />
2.3 把解压后的fck-faces-1.5.1\org目录复制到项目源码目录， 等候修改<br />
注意，暂时不要把解压后的jar包放到lib目录下，因为有些问题需要修改<br />
<br />
三、修改<br />
3.1 \FCKeditor\fckeditor.js<br />
修改约第33行的 this.BasePath = '/fckeditor/' ; <br />
为 this.BasePath = '/FCKeditor/' ;<br />
<br />
3.2 \FCKeditor\fckconfig.js<br />
修改约第48行的 FCKConfig.DefaultLanguage = 'en' ;<br />
为你喜欢的语言，前提是要它支持。<br />
<br />
修改约第134行的<br />
var _FileBrowserLanguage = 'asp' ;<br />
var _QuickUploadLanguage = 'asp' ;<br />
为<br />
var _FileBrowserLanguage = 'jsp' ;<br />
var _QuickUploadLanguage = 'jsp' ;<br />
（不过这个改不改都没有所谓，因为可以通过修改web.xml来实现servlet的url影射。）<br />
<br />
3.3 WEB-INF\web.xml<br />
&lt;!-- FCKEditor --&gt;<br />
&lt;servlet&gt; 这个是&#8220;浏览服务器&#8221;功能所用到，包括读取和上传<br />
&lt;servlet-name&gt;Connector&lt;/servlet-name&gt;<br />
&lt;servlet-class&gt;com.fredck.FCKeditor.connector.ConnectorServlet&lt;/servlet-class&gt;<br />
&lt;init-param&gt;<br />
&nbsp; &lt;param-name&gt;baseDir&lt;/param-name&gt;<br />
&nbsp; &lt;param-value&gt;/UserFiles/&lt;/param-value&gt; 这个根据需要修改<br />
&lt;/init-param&gt;<br />
&lt;init-param&gt;<br />
&nbsp; &lt;param-name&gt;debug&lt;/param-name&gt;<br />
&nbsp; &lt;param-value&gt;true&lt;/param-value&gt; 调试时候打开<br />
&lt;/init-param&gt;<br />
&lt;load-on-startup&gt;1&lt;/load-on-startup&gt;<br />
&lt;/servlet&gt;<br />
<br />
&lt;servlet&gt; 这个是对话框的简单上传功能所用到，可以上传文件<br />
&lt;servlet-name&gt;SimpleUploader&lt;/servlet-name&gt;<br />
&lt;servlet-class&gt;com.fredck.FCKeditor.uploader.SimpleUploaderServlet&lt;/servlet-class&gt;<br />
&lt;init-param&gt;<br />
&nbsp; &lt;param-name&gt;baseDir&lt;/param-name&gt;<br />
&nbsp; &lt;param-value&gt;/UserFiles/&lt;/param-value&gt; 这个根据需要修改<br />
&lt;/init-param&gt;<br />
&lt;init-param&gt;<br />
&nbsp; &lt;param-name&gt;debug&lt;/param-name&gt;<br />
&nbsp; &lt;param-value&gt;true&lt;/param-value&gt; 调试时候打开<br />
&lt;/init-param&gt;<br />
&lt;init-param&gt;<br />
&nbsp; &lt;param-name&gt;enabled&lt;/param-name&gt;<br />
&nbsp; &lt;param-value&gt;true&lt;/param-value&gt; 如果允许<br />
&lt;/init-param&gt;<br />
&lt;init-param&gt;<br />
&nbsp; &lt;param-name&gt;AllowedExtensionsFile&lt;/param-name&gt;<br />
&nbsp; &lt;param-value&gt;&lt;/param-value&gt;<br />
&lt;/init-param&gt;<br />
&lt;init-param&gt;<br />
&nbsp; &lt;param-name&gt;DeniedExtensionsFile&lt;/param-name&gt;<br />
&nbsp; &lt;param-value&gt;php|php3|php5|phtml|asp|aspx|ascx|jsp|cfm|cfc|pl|bat|exe|dll|reg|cgi&lt;/param-value&gt;<br />
&lt;/init-param&gt;<br />
&lt;init-param&gt;<br />
&nbsp; &lt;param-name&gt;AllowedExtensionsImage&lt;/param-name&gt;<br />
&nbsp; &lt;param-value&gt;jpg|gif|jpeg|png|bmp&lt;/param-value&gt;<br />
&lt;/init-param&gt;<br />
&lt;init-param&gt;<br />
&nbsp; &lt;param-name&gt;DeniedExtensionsImage&lt;/param-name&gt;<br />
&nbsp; &lt;param-value&gt;&lt;/param-value&gt;<br />
&lt;/init-param&gt;<br />
&lt;init-param&gt;<br />
&nbsp; &lt;param-name&gt;AllowedExtensionsFlash&lt;/param-name&gt;<br />
&nbsp; &lt;param-value&gt;swf|fla&lt;/param-value&gt;<br />
&lt;/init-param&gt;<br />
&lt;init-param&gt;<br />
&nbsp; &lt;param-name&gt;DeniedExtensionsFlash&lt;/param-name&gt;<br />
&nbsp; &lt;param-value&gt;&lt;/param-value&gt;<br />
&lt;/init-param&gt;<br />
&lt;load-on-startup&gt;1&lt;/load-on-startup&gt;<br />
&lt;/servlet&gt;<br />
<br />
&lt;servlet-mapping&gt; 通过观察，发现filemanager请求服务器的路径，就修改如下<br />
&nbsp; &lt;servlet-name&gt;Connector&lt;/servlet-name&gt;<br />
&nbsp; &lt;url-pattern&gt;/FCKeditor/editor/filemanager/browser/default/connectors/jsp/connector.jsp&lt;/url-pattern&gt;<br />
&lt;/servlet-mapping&gt;<br />
<br />
&lt;servlet-mapping&gt; 这个是Simone Chiaretta的配置，暂时未发现用处<br />
&nbsp; &lt;servlet-name&gt;SimpleUploader&lt;/servlet-name&gt;<br />
&nbsp; &lt;url-pattern&gt;/FCKeditor/editor/filemanager/upload/simpleuploader.jsp&lt;/url-pattern&gt;<br />
&lt;/servlet-mapping&gt;<br />
&lt;servlet-mapping&gt; 通过观察，发现filemanager请求服务器的路径，就修改如下<br />
&nbsp; &lt;servlet-name&gt;SimpleUploader&lt;/servlet-name&gt;<br />
&nbsp; &lt;url-pattern&gt;/FCKeditor/editor/filemanager/upload/jsp/upload.jsp&lt;/url-pattern&gt;<br />
&lt;/servlet-mapping&gt;<br />
&lt;!-- End of FCKEditor --&gt;<br />
<br />
3.4 修改 com.fredck.FCKeditor.uploader.SimpleUploaderServlet<br />
在约第113行附近，就如下面代码，避免构建null路径：<br />
if (typeStr==null || typeStr.trim().equals("")) typeStr = "File";<br />
（这个是仿照fckeditor在upload.php,upload.asp等源码来修改的）<br />
<br />
3.5 修改jsf标签<br />
你可以去这里获得fck-faces的源代码，或者联系作者让他修正错误（忘记处理编辑器的宽高）<br />
<a href="http://sourceforge.net/forum/forum.php?forum_id=606070" target="_blank">http://sourceforge.net/forum/forum.php?forum_id=606070</a><br />
（实在找不到，你可以考虑反编译其中这个文件）<br />
<br />
找到 org.fckfaces.taglib.html.FCKFaceEditorTag 类，修改下面方法<br />
protected void setProperties(UIComponent component)<br />
&nbsp; {<br />
&nbsp; &nbsp; super.setProperties(component);<br />
&nbsp; &nbsp; Tags.setString(component, "toolbarSet", toolbarSet);<br />
&nbsp; }<br />
为： <br />
protected void setProperties(UIComponent component)<br />
&nbsp; {<br />
&nbsp; &nbsp; super.setProperties(component);<br />
&nbsp; &nbsp; Tags.setString(component, "toolbarSet", toolbarSet);<br />
&nbsp; &nbsp; Tags.setString(component, "height", height);<br />
&nbsp; &nbsp; Tags.setString(component, "width", width);<br />
&nbsp; }<br />
相 应的，你还需要修改 org.fckfaces.component.html.FCKFaceEditor的saveState(FacesContext context)和restoreState(FacesContext context, Object state)方法，来保存和恢复宽高属性。<br />
<br />
public Object saveState(FacesContext context)<br />
&nbsp; {<br />
&nbsp; &nbsp; Object values[] = new Object[4];<br />
&nbsp; &nbsp; values[0] = super.saveState(context);<br />
&nbsp; &nbsp; values[1]=height;<br />
&nbsp; &nbsp; values[2]=width;<br />
&nbsp; &nbsp; values[3] = toolbarSet;<br />
&nbsp; &nbsp; return ((Object) (values));<br />
&nbsp; }<br />
<br />
&nbsp; public void restoreState(FacesContext context, Object state)<br />
&nbsp; {<br />
&nbsp; &nbsp; Object values[] = (Object[])(Object[])state;<br />
&nbsp; &nbsp; super.restoreState(context, values[0]);<br />
&nbsp; &nbsp; System.out.println(values.length);<br />
&nbsp; &nbsp; height=(String)values[1];<br />
&nbsp; &nbsp; width=(String)values[2];<br />
&nbsp; &nbsp; toolbarSet = (String)values[3];<br />
&nbsp; }<br />
<br />
<br />
找到org.fckfaces.util.Util类<br />
<br />
在调试fck-faces的时候，发现fck-faces的标签非常强大，居然不用再jsp页面引入fckeditor.js，<br />
它竟然能否自动做到。可惜分析一下这个功能是建立它要求你固定的把FCKeditor的代码放在<br />
/fckfaces/FCKeditor目录下。如果像我把它放在/FCKeditor就需要作出以下修改：<br />
<br />
public class Util{<br />
<br />
&nbsp; public Util() {}<br />
<br />
&nbsp; public static final String internalPath(String path)<br />
&nbsp; {<br />
&nbsp; &nbsp; return (new StringBuilder()).append(FacesContext.getCurrentInstance().getExternalContext().getRequestContextPath()).append(FCK_FACES_RESOURCE_PREFIX).append(path).toString();<br />
&nbsp; }<br />
<br />
&nbsp; public static final String FCK_FACES_RESOURCE_PREFIX = "/"; //这里原来是/fckfaces<br />
}<br />
<br />
如果你是反编译得到的源代码，则编译成功之后，需要替换掉原来jar包里面的这个class文件。<br />
（你可以使用jar命令行来解压jar，换了文件之后在打包。）<br />
<br />
如果你是获得源码修改，可能需要注意配置fck-faces.taglib.xml，fck-faces.tld和faces-config.xml。这几个文件在压缩包里面都有。<br />
<br />
四、使用<br />
<br />
4.1 使用javascipt替换textarea方法<br />
/////////////////////////////////////////////////////<br />
&lt;script type="text/javascript" src="&lt;c:url value="/FCKeditor/fckeditor.js"/&gt;"&gt;&lt;/script&gt;<br />
<br />
&lt;h:form id="newsadd"&gt;<br />
&lt;h:outputText value="Title:"/&gt;<br />
&lt;h:inputText value="#{newsAddForm.title }"/&gt;<br />
&lt;br/&gt;<br />
&lt;h:outputText value="Content:"/&gt;<br />
&lt;h:inputTextarea id="content" value="#{newsAddForm.content }" cols="80" rows="5"/&gt;<br />
&lt;br/&gt;<br />
&lt;h:commandButton value="Submit" action="#{newsAddForm.submit }"/&gt;<br />
<br />
&lt;script type="text/javascript"&gt;<br />
var oFCKeditor = new FCKeditor('newsadd:content') ; //这里设置textarea的id或name<br />
oFCKeditor.BasePath = '&lt;c:url value="/FCKeditor/"/&gt;' ;<br />
oFCKeditor.Height = "80%"; //这里设置高度<br />
oFCKeditor.ToolbarSet = "Default" ; <br />
oFCKeditor.ReplaceTextarea();<br />
&lt;/script&gt;<br />
&lt;/h:form&gt;<br />
/////////////////////////////////////////////////////<br />
<br />
4.2 使用jsf标签<br />
/////////////////////////////////////////////////////<br />
&lt;%@ taglib uri="<a href="http://www.fck-faces.org/fck-faces" target="_blank">http://www.fck-faces.org/fck-faces</a>" prefix="fck"%&gt;<br />
&lt;h:form id="form1"&gt;<br />
&lt;fck:editor toolbarSet="Default" value="#{fckText.text}" width="80%" height="80%" id="myComponentId" cols="80" rows="18"/&gt;<br />
<br />
&lt;h:commandButton action="#{fckText.print}"/&gt;<br />
&lt;/h:form&gt;<br />
/////////////////////////////////////////////////////<br />
<br />
五、严重注意事项<br />
我的web.xml配置了JSF拦截*.html文件，现在FCKeditor使用了大量的*.html，结果导致<br />
它们都被Faces Servlet拦截了，一个页面都出不来，怎么办呢？<br />
&lt;servlet-mapping&gt;<br />
&lt;servlet-name&gt;Faces Servlet&lt;/servlet-name&gt;<br />
&lt;url-pattern&gt;*.html&lt;/url-pattern&gt;<br />
&lt;/servlet-mapping&gt;<br />
<br />
想来想去，没有什么好办法，唯有把原来项目中使用*.html的全部改为*.jsf，真惨！<br />
不知道你有什么好方法呢？还请发表评论或者来信告知！ <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#115;&#97;&#109;&#108;&#97;&#110;&#100;&#64;&#50;&#49;&#99;&#110;&#46;&#99;&#111;&#109;">samland@21cn.com</a><br />
&lt;servlet-mapping&gt;<br />
&lt;servlet-name&gt;Faces Servlet&lt;/servlet-name&gt;<br />
&lt;url-pattern&gt;*.jsf&lt;/url-pattern&gt;<br />
&lt;/servlet-mapping&gt;<br />
<br />
OK， 祝你顺利！</span>
<img src ="http://www.blogjava.net/Javawind/aggbug/164440.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Javawind/" target="_blank">kooyee</a> 2007-12-01 00:47 <a href="http://www.blogjava.net/Javawind/archive/2007/12/01/164440.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在线编辑器 FCKEDITOR中文使用说明 </title><link>http://www.blogjava.net/Javawind/archive/2007/12/01/164439.html</link><dc:creator>kooyee</dc:creator><author>kooyee</author><pubDate>Fri, 30 Nov 2007 16:45:00 GMT</pubDate><guid>http://www.blogjava.net/Javawind/archive/2007/12/01/164439.html</guid><wfw:comment>http://www.blogjava.net/Javawind/comments/164439.html</wfw:comment><comments>http://www.blogjava.net/Javawind/archive/2007/12/01/164439.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Javawind/comments/commentRss/164439.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Javawind/services/trackbacks/164439.html</trackback:ping><description><![CDATA[首先,FCKEDITOR的性能是非常好的,用户只需很少的时间就可以载入FCKEDITOR所需文件.对于其他在线编辑器来说,这几乎是个很难解决的难题,因为在开启编辑器时需要装载太多的文件.比如CUTEEDITOR,虽然功能比FCKEDITOR还要强大,可是,它本身也够庞大了,至于FREETEXTBOX等,其易用性与FCKEDITOR相比,尚有差距,可以说,FCKEDITOR是一个别具匠心的在线编辑器,它里面融入了作者高深的面向对象的JAVASCRIPT功力,集易用性与强大的功能与一体.<br />
<br />
<p>性能<br />
<br />
首先,FCKEDITOR的性能是非常好的,用户只需很少的时间就可以载入FCKEDITOR所需文件.对于其他在线编辑器来说,这几乎是个很难解决的难题,因为在开启编辑器时需要装载太多的文件.比如CUTEEDITOR,虽然功能比FCKEDITOR还要强大,可是,它本身也够庞大了,至于FREETEXTBOX等,其易用性与FCKEDITOR相比,尚有差距,可以说,FCKEDITOR是一个别具匠心的在线编辑器,它里面融入了作者高深的面向对象的JAVASCRIPT功力,集易用性与强大的功能与一体.<br />
<br />
.与编辑器相关的所有图像,脚本以及调用页<br />
.语言文件<br />
.编辑器的皮肤文件<br />
.工具样的贴图等<br />
<br />
这些将导致在服务器和客户端间产生相当的流量.如果有许多文件被调用,那么即便每个文件很小.也会让用户等得不耐烦.<br />
<br />
在2.0版中,开发人员有两种方法来解决这个问题.<br />
那就是指定装载顺序和脚本压缩<br />
<br />
装载顺序<br />
从2.0版开始,编辑器按以下步骤装载资源:<br />
.基本页(就是编辑器所在页)以及装入编辑器的JS脚本<br />
.用来建立编辑器的脚本<br />
.编辑器的语言和皮肤.<br />
.建立编辑器.<br />
.载入预置的编辑文档内容.<br />
.从现在开始,用户可以阅读和编辑文档了,不过,拖拽支持以及工具栏都是不可用的<br />
.载入编辑器引擎脚本<br />
.建立工具栏,并且可用<br />
.从现在开始,编辑器的所有功能都已经完整<br />
.载入工具栏图标<br />
<br />
脚本压缩<br />
<br />
在打包任何新版本时,编辑器的JS脚本将会进行预处理.预处理步骤如下:<br />
.移除所有代码注释<br />
.移除所有无用的空白字符.<br />
.将脚本合并成几个文件<br />
<br />
使用上面的方法,我们可以将脚本文件的大小压缩到原来的50%.<br />
压缩后,原始的代码仍然存在于一个名为_Source的文件夹中<br />
<br />
如何打包?<br />
编辑器已经自带了打包程序,它位于FCKEDITOR的根文件夹中_PACKAGER文件夹中,名为Fckeditor.Packager.exe,将其复制到FCKEDITOR根文件夹中并运行,即可自动将JS脚本打包并压缩<br />
需要注意的是该程序是一个.NET程序,必须安装.NET FRAMEWORK才能使用<br />
<br />
想要获取支持?<br />
如果你捐赠15000欧元,你就可以获得1年的免费技术支持(比较贵的说,相当于人民币15万,不过西欧的费用相当惊人)<br />
<br />
如何安装?<br />
<br />
1.下载最新版的FCKEDITOR<br />
2.解压缩到你的站点根文件夹中名为FCKEDITOR的文件夹中(名称必须为FCKEDITOR,因为配置文件中已经使用此名称来标示出FCKEDITOR的位置)<br />
3.现在,编辑器就可以使用了,如果想要查看演示,可以按下面方法访问:<br />
<a title="http://" href="http:///" target="_blank">http://</a>&lt;your-site&gt;/FCKeditor/_samples/default.html<br />
<br />
注意:你可以将FCKEDITOR放置到任何文件夹,默认情况下,将其放入到FCKEDITOR文件夹是最为简单的方法.如果你放入的文件夹使用别的名称,请修改配置文件夹中编辑器BasePath参数,如下所示:<br />
oFckeditor.BasePath="/Components/fckeditor/";<br />
<br />
另外,FCKEDITOR文件夹中所有以下划线开头的文件夹及文件,都是可选的,可以安全的从你的发布中删除.它们并不是编辑器运行时必需的<br />
<br />
如何将FCKEDITOR整合进我的页面?<br />
<br />
由于目前的版本提供的FCKEDITOR仅提供了JAVASCRIPT式的整合,因此,这里仅讲述如何应用JAVASCRIPT来整合FCKEDITOR到站点中,当然,其他各种语言的整合,你可以参考_samples文件夹中的例子来完成<br />
1,假如编辑器已经安装在你的站点的/FCKEDITOR/文件夹下.那么,第一步我们需要做的就是在页面的HEAD段中放入SCRIPT标记以引入JAVASCRIPT整合模块.例如:<br />
&lt;script type="text/javascript" src="/fckeditor/fckeditor.js"&gt;&lt;/script&gt;<br />
<br />
其中路径是可更改的<br />
<br />
2,现在,FCKEDITOR类已经可以使用了.有两个方法在页面中建立一个FCKEDITOR编辑器:<br />
方法1:内联方式(建议使用):在页面的FORM标记内需要插入编辑器的地方置入以下代码:<br />
script type="text/javascript"&gt;<br />
var oFCKeditor = new FCKeditor( 'FCKeditor1' ) ;<br />
oFCKeditor.Create() ;<br />
&lt;/script&gt;<br />
<br />
方法2:TEXTAREA标记替换法(不建议使用):在页面的ONLOAD事件中,添加以下代码以替换一个已经存在的TEXTAREA标记<br />
<br />
&lt;html&gt;<br />
&lt;head&gt;<br />
&lt;script type="text/javascript"&gt;<br />
window.onload = function()<br />
{<br />
var oFCKeditor = new FCKeditor( 'MyTextarea' ) ;<br />
oFCKeditor.ReplaceTextarea() ;<br />
}<br />
&lt;/script&gt;<br />
&lt;/head&gt;<br />
&lt;body&gt;<br />
&lt;textarea id="MyTextarea" name="MyTextarea"&gt;This is &lt;b&gt;the&lt;/b&gt; initial value.&lt;/textarea&gt;<br />
&lt;/body&gt;<br />
&lt;/html&gt;<br />
<br />
3.现在,编辑器可以使用了<br />
<br />
FCKEDITOR类参考:<br />
下面是用来在页面中建立编辑器的FCKEDITOR类的说明<br />
<br />
构造器:<br />
FCKeditor( instanceName[, width, height, toolbarSet, value] )<br />
instanceName:编辑器的唯一名称(相当于ID)<br />
WIDTH:宽度<br />
HEIGHT:高度<br />
toolbarSet:工具条集合的名称<br />
value:编辑器初始化内容<br />
<br />
属性:<br />
instanceName:编辑器实例名<br />
width:宽度,默认值为100%<br />
height:高度,默认值是200<br />
ToolbarSet:工具集名称,参考FCKCONFIG.JS,默认值是Default<br />
value:初始化编辑器的HTML代码,默认值为空<br />
BasePath:编辑器的基路径,默认为/Fckeditor/文件夹,注意,尽量不要使用相对路径.最好能用相对于站点根路径的表示方法,要以/结尾<br />
CheckBrowser:是否在显示编辑器前检查浏览器兼容性,默认为true<br />
DisplayErrors:是否显示提示错误,默为true;<br />
<br />
集合:<br />
Config[Key]=value;<br />
这个集合用于更改配置中某一项的值,如<br />
oFckeditor.Config["DefaultLanguage"]="pt-br";<br />
<br />
方法:<br />
Create()<br />
建立并输出编辑器<br />
<br />
RepaceTextArea(TextAreaName)<br />
用编辑器来替换对应的文本框<br />
<br />
如何配置FCKEDITOR?<br />
FCKEDITOR提供了一套用于定制其外观,特性及行为的设置集.主配置文件名为Fckconfig.js<br />
你既可以编辑主配置文件,也可以自己定义单独的配置文件.配置文件使用JAVASCRIPT语法.<br />
<br />
修改后,在建立编辑器时,可以使用以下语法:<br />
var oFCKeditor = new FCKeditor( 'FCKeditor1' ) ;<br />
oFCKeditor.Config['CustomConfigurationsPath'] = '/myconfig.js' ;<br />
oFCKeditor.Create() ;<br />
<br />
提醒:当你修改配置后,请清空浏览器缓存以查看效果<br />
<br />
配置选项:<br />
<br />
AutoDetectLanguage=true/false 自动检测语言<br />
BaseHref="" 相对链接的基地址<br />
ContentLangDirection="ltr/rtl" 默认文字方向<br />
ContextMenu=字符串数组,右键菜单的内容<br />
CustomConfigurationsPath="" 自定义配置文件路径和名称<br />
Debug=true/false 是否开启调试功能,这样,当调用FCKDebug.Output()时,会在调试窗中输出内容<br />
DefaultLanguage="" 缺省语言<br />
EditorAreaCss="" 编辑区的样式表文件<br />
EnableSourceXHTML=true/false 为TRUE时,当由可视化界面切换到代码页时,把HTML处理成XHTML<br />
EnableXHTML=true/false 是否允许使用XHTML取代HTML<br />
FillEmptyBlocks=true/false 使用这个功能,可以将空的块级元素用空格来替代<br />
FontColors="" 设置显示颜色拾取器时文字颜色列表<br />
FontFormats="" 设置显示在文字格式列表中的命名<br />
FontNames="" 字体列表中的字体名<br />
FontSizes="" 字体大小中的字号列表<br />
ForcePasteAsPlainText=true/false 强制粘贴为纯文本<br />
ForceSimpleAmpersand=true/false 是否不把&amp;符号转换为XML实体<br />
FormatIndentator="" 当在源码格式下缩进代码使用的字符<br />
FormatOutput=true/false 当输出内容时是否自动格式化代码<br />
FormatSource=true/false 在切换到代码视图时是否自动格式化代码<br />
FullPage=true/false 是否允许编辑整个HTML文件,还是仅允许编辑BODY间的内容<br />
GeckoUseSPAN=true/false 是否允许SPAN标记代替B,I,U标记<br />
IeSpellDownloadUrl=""下载拼写检查器的网址<br />
ImageBrowser=true/false 是否允许浏览服务器功能<br />
ImageBrowserURL="" 浏览服务器时运行的URL<br />
ImageBrowserWindowHeight="" 图像浏览器窗口高度<br />
ImageBrowserWindowWidth="" 图像浏览器窗口宽度<br />
LinkBrowser=true/false 是否允许在插入链接时浏览服务器<br />
LinkBrowserURL="" 插入链接时浏览服务器的URL<br />
LinkBrowserWindowHeight=""链接目标浏览器窗口高度<br />
LinkBrowserWindowWidth=""链接目标浏览器窗口宽度<br />
Plugins=object 注册插件<br />
PluginsPath="" 插件文件夹<br />
ShowBorders=true/false 合并边框<br />
SkinPath="" 皮肤文件夹位置<br />
SmileyColumns=12 图符窗列数<br />
SmileyImages=字符数组 图符窗中图片文件名数组<br />
SmileyPath="" 图符文件夹路径<br />
SmileyWindowHeight 图符窗口高度<br />
SmileyWindowWidth 图符窗口宽度<br />
SpellChecker="ieSpell/Spellerpages" 设置拼写检查器<br />
StartupFocus=true/false 开启时FOCUS到编辑器<br />
StylesXmlPath="" 设置定义CSS样式列表的XML文件的位置<br />
TabSpaces=4 TAB键产生的空格字符数<br />
ToolBarCanCollapse=true/false 是否允许展开/折叠工具栏<br />
ToolbarSets=object 允许使用TOOLBAR集合<br />
ToolbarStartExpanded=true/false 开启是TOOLBAR是否展开<br />
UseBROnCarriageReturn=true/false 当回车时是产生BR标记还是P或者DIV标记<br />
<br />
如何自定义样式列表呢?<br />
FCKEDITOR的样式工具栏中提供了预定义的样式,样式是通过XML文件定义的,默认的XML样式文件存在于FCkEditor根文件夹下的FckStyls.xml文件中<br />
这个XML文件的结构分析如下:<br />
&lt;?xml version="1.0" encoding="utf-8" ?&gt;<br />
&lt;Styles &gt;<br />
&lt;Style name="My Image" element="img"&gt;<br />
&lt;Attribute name="style" value="padding: 5px" /&gt;<br />
&lt;Attribute name="border" value="2" /&gt;<br />
&lt;/Style &gt;<br />
&lt;Style name="Italic" element="em" /&gt;<br />
&lt;Style name="Title" element="span"&gt;<br />
&lt;Attribute name="class" value="Title" /&gt;<br />
&lt;/Style &gt;<br />
&lt;Style name="Title H3" element="h3" /&gt;<br />
&lt;/Styles&gt;<br />
<br />
每一个STYLE标记定义一种样式,NAME是显示在下拉列表中的样式名,ELEMENT属性指定此样式所适用的对象,因为FCKEDITOR中的样式是上下文敏感的,也就是说,选择不同的对象,仅会显示针对这类对象定义的样式<br />
<br />
拼写检查<br />
<br />
FCKEDITOR带了两种拼写检查工具,一种是ieSpell,默认情况下使用这种,使用这种方式的拼写检查,要求客户下载并安装iespell这个小软件,另外,也提供SpellPager的方式来进行拼写检查,不过,由于SPELLPAGER是由PHP编写的服务器端脚本,因此,要求你的WEB服务器必须支持PHP脚本语言方可<br />
更改拼写检查器的方式请参见有关配置文件的详细说明<br />
<br />
压缩脚本<br />
<br />
为了提供脚本载入的效率,FCKEDITOR采用以下方法对脚本尽量压缩以减少脚本尺寸:<br />
1,移除掉脚本中的注释<br />
2.移除掉脚本中所有无意义的空白<br />
另外,FCKEDITOR还提供了一个专门用于压缩脚本的工具以便 你在发布时能减小文件尺寸,<br />
你可以将_Packager文件夹中的Fckeditor.Packager.exe复制到FCKEDITOR根文件夹来运行并压缩脚本<br />
<br />
本地化FCKEDITOR<br />
如果FCKEDITOR没有提供您所需要的语言(实际上全有了),你也可以自行制作新的语言<br />
,你只需要复制出EN.JS,然后在其基础上进行翻译.另外,语言名称与对应的脚本文件名必须遵循RFC 3066标准,但是,需要小写,例如:Portuguess Language对应的脚本文件名必须为pt.js<br />
如果需要针对某个国家的某种语系,则可以在语系缩写后加上横线及国家缩写即可<br />
<br />
在使用时,系统会自动侦测客户端语系及国别而运用适当的界面语言.<br />
<br />
当建立一种新的语言后,你必须在"Edit/lang/fcklanguagemanager.js"中为其建立一个条目,如下所示:<br />
FCKLanguageManager.AvailableLanguages = <br />
{<br />
<br />
en : 'English',<br />
pt : 'Portuguese' <br />
} <br />
<br />
需要提醒的是,文件必须保存为UTF-8格式<br />
<br />
如何与服务器端脚本进行交互?<br />
请查看例子以得到相关内容<br />
<br />
另外,在ASP.NET中以以下步骤使用<br />
1.把FCKEDITOR添中到工具箱<br />
2.托拽FCKEDITOR控件到页面<br />
3.为其指定名称<br />
4.FCKEDITOR类的所有属性不光可以在代码中使用,而且可以作为FCKEDITOR控件的属性直接使用,例如,要改变皮肤,可以在UI页面中指定SkinPath="/fckeditor/editor/skins/office2003"即可,其实FCKEDITOR的ASP.NET版本可以做得更好,你可以找到FCKEDITOR ASP.NET 2.1的源文件,然后修改该控件的设计,为其暴露更多有用的属性,重新编译即可<br />
5,POSTBACK后的数据,使用FCKEDITOR控件的value属性获得<br />
6.由于默认状态下,ASP.NET不允许提交含有HTML及JAVASCRIPT的内容,因此,你必须将使用FCKEDITOR的页面的ValidateRequest设为false.(&lt;%@page validteRequest="false" %&gt;即可)<br />
</p>
<p>--------------------------------------------------------</p>
<p>附：</p>
<p>一、如何设置上传文件语言</p>
<p>把FCKeditor根目录下面的fckconfig.js文件里<br />
<br />
var&nbsp;_FileBrowserLanguage&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;'asp'&nbsp;;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;asp&nbsp;|&nbsp;aspx&nbsp;|&nbsp;cfm&nbsp;|&nbsp;lasso&nbsp;|&nbsp;perl&nbsp;|&nbsp;php&nbsp;|&nbsp;py<br />
var&nbsp;_QuickUploadLanguage&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;'asp'&nbsp;;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;asp&nbsp;|&nbsp;aspx&nbsp;|&nbsp;cfm&nbsp;|&nbsp;lasso&nbsp;|&nbsp;php<br />
<br />
这两行中改成您所需要调用的编辑器语言，如用asp.net则改为aspx；<br />
</p>
<p>二、解决中文的问题:<br />
在web.config中加入:<br />
&lt;globalization requestEncoding="GB2312" responseEncoding="GB2312"/&gt;<br />
这样设置后可以显示中文的文件，但URL地址也是中文的；<br />
如果服务器对中文地址的解析不好，可能导致图片无法浏览；<br />
所以修改：editor\filemanager\browser\default\frmresourceslist.html<br />
中的OpenFile函数，把<br />
window.top.opener.SetUrl( fileUrl ) ; <br />
修改为:<br />
window.top.opener.SetUrl( escape(fileUrl) ) ;</p>
<p><br />
三.设置上传的目录：<br />
1:在web.config中设置:<br />
&nbsp;&lt;appSettings&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp; &lt;add key="FCKeditor:UserFilesPath" value="/fck/UpLoad/" /&gt;<br />
&nbsp;&lt;/appSettings&gt;</p>
<p>2:在Session中设置:<br />
在editor\filemanager\browser\default\connectors\aspx\connector.aspx中加入以下代码:<br />
&lt;script runat="server" language="C#"&gt;<br />
&nbsp;protected override void OnInit(EventArgs e)<br />
&nbsp;{<br />
&nbsp;&nbsp;Session["FCKeditor:UserFilesPath"] = "/fck/UpLoad1/";<br />
&nbsp;}<br />
&lt;/script&gt;</p>
<p>附：如何在asp.net中动态设置上传图片的路径？</p>
<p><font face="Arial">1.在javascript中修改FCKConfig.ImageBrowserURL的值，修改方式如下：<br />
&nbsp;FCKConfig.ImageBrowserURL += "?Path=要上传的文件路径";<br />
&nbsp;如:要把文件上传到站点根目录的UploadFile文件夹中，则设置为：<br />
&nbsp;FCKConfig.ImageBrowserURL += "?Path=/UploadFile";<br />
2.在"editor\filemanager\browser\default\connectors\aspx\connector.aspx"文件最后中增加以下程序：<br />
&lt;script runat="server" language="C#"&gt;<br />
&nbsp;&nbsp;&nbsp; protected override void OnInit(EventArgs e)<br />
&nbsp;&nbsp;&nbsp; {<br />
&nbsp;if( Request.QueryString["Path"]==null ){<br />
&nbsp;&nbsp;Session["FCKeditor:UserFilesPath"] = "/UpLoadFiles/";&nbsp;//设置默认值<br />
&nbsp;}else{<br />
&nbsp;&nbsp;Session["FCKeditor:UserFilesPath"] = Request.QueryString["Path"];<br />
&nbsp;}<br />
&nbsp;&nbsp;&nbsp; }<br />
&lt;/script&gt;</font></p>
<img src ="http://www.blogjava.net/Javawind/aggbug/164439.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Javawind/" target="_blank">kooyee</a> 2007-12-01 00:45 <a href="http://www.blogjava.net/Javawind/archive/2007/12/01/164439.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[WEB] 在线编辑器核心技术代码 </title><link>http://www.blogjava.net/Javawind/archive/2007/11/30/164367.html</link><dc:creator>kooyee</dc:creator><author>kooyee</author><pubDate>Fri, 30 Nov 2007 10:22:00 GMT</pubDate><guid>http://www.blogjava.net/Javawind/archive/2007/11/30/164367.html</guid><wfw:comment>http://www.blogjava.net/Javawind/comments/164367.html</wfw:comment><comments>http://www.blogjava.net/Javawind/archive/2007/11/30/164367.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Javawind/comments/commentRss/164367.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Javawind/services/trackbacks/164367.html</trackback:ping><description><![CDATA[<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" twffan="done"><span style="color: #008080" twffan="done">&nbsp;1</span><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" twffan="done"  alt="" /><span style="color: #000000" twffan="done">&lt;</span><span style="color: #000000" twffan="done">iframe&nbsp;id</span><span style="color: #000000" twffan="done">=</span><span style="color: #000000" twffan="done">x&nbsp;name</span><span style="color: #000000" twffan="done">=</span><span style="color: #000000" twffan="done">x&nbsp;height</span><span style="color: #000000" twffan="done">=</span><span style="color: #000000" twffan="done">"</span><span style="color: #000000" twffan="done">100</span><span style="color: #000000" twffan="done">"</span><span style="color: #000000" twffan="done">&nbsp;style</span><span style="color: #000000" twffan="done">=</span><span style="color: #000000" twffan="done">"</span><span style="color: #000000" twffan="done">padding:0px;</span><span style="color: #000000" twffan="done">"</span><span style="color: #000000" twffan="done">&gt;&lt;/</span><span style="color: #000000" twffan="done">iframe</span><span style="color: #000000" twffan="done">&gt;&lt;</span><span style="color: #000000" twffan="done">br</span><span style="color: #000000" twffan="done">&gt;</span><span style="color: #000000" twffan="done"><br />
</span><span style="color: #008080" twffan="done">&nbsp;2</span><span style="color: #000000" twffan="done"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" twffan="done"  alt="" /></span><span style="color: #000000" twffan="done">&lt;</span><span style="color: #000000" twffan="done">input&nbsp;type</span><span style="color: #000000" twffan="done">=</span><span style="color: #000000" twffan="done">button&nbsp;onclick</span><span style="color: #000000" twffan="done">=</span><span style="color: #000000" twffan="done">t('UnderLine')&nbsp;value</span><span style="color: #000000" twffan="done">=</span><span style="color: #000000" twffan="done">"</span><span style="color: #000000" twffan="done">下划线</span><span style="color: #000000" twffan="done">"</span><span style="color: #000000" twffan="done">&gt;</span><span style="color: #000000" twffan="done"><br />
</span><span style="color: #008080" twffan="done">&nbsp;3</span><span style="color: #000000" twffan="done"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" twffan="done"  alt="" /></span><span style="color: #000000" twffan="done">&lt;</span><span style="color: #000000" twffan="done">input&nbsp;type</span><span style="color: #000000" twffan="done">=</span><span style="color: #000000" twffan="done">button&nbsp;onclick</span><span style="color: #000000" twffan="done">=</span><span style="color: #000000" twffan="done">t('bold')&nbsp;value</span><span style="color: #000000" twffan="done">=</span><span style="color: #000000" twffan="done">"</span><span style="color: #000000" twffan="done">粗体</span><span style="color: #000000" twffan="done">"</span><span style="color: #000000" twffan="done">&gt;</span><span style="color: #000000" twffan="done"><br />
</span><span style="color: #008080" twffan="done">&nbsp;4</span><span style="color: #000000" twffan="done"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" twffan="done"  alt="" /><br />
</span><span style="color: #008080" twffan="done">&nbsp;5</span><span style="color: #000000" twffan="done"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" twffan="done"  alt="" /></span><span style="color: #000000" twffan="done">&lt;</span><span style="color: #000000" twffan="done">input&nbsp;type</span><span style="color: #000000" twffan="done">=</span><span style="color: #000000" twffan="done">button&nbsp;onclick</span><span style="color: #000000" twffan="done">=</span><span style="color: #000000" twffan="done">t('JustifyLeft')&nbsp;value</span><span style="color: #000000" twffan="done">=</span><span style="color: #000000" twffan="done">"</span><span style="color: #000000" twffan="done">左对齐</span><span style="color: #000000" twffan="done">"</span><span style="color: #000000" twffan="done">&gt;</span><span style="color: #000000" twffan="done"><br />
</span><span style="color: #008080" twffan="done">&nbsp;6</span><span style="color: #000000" twffan="done"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" twffan="done"  alt="" /></span><span style="color: #000000" twffan="done">&lt;</span><span style="color: #000000" twffan="done">input&nbsp;type</span><span style="color: #000000" twffan="done">=</span><span style="color: #000000" twffan="done">button&nbsp;onclick</span><span style="color: #000000" twffan="done">=</span><span style="color: #000000" twffan="done">t('JustifyCenter')&nbsp;value</span><span style="color: #000000" twffan="done">=</span><span style="color: #000000" twffan="done">"</span><span style="color: #000000" twffan="done">居中对齐</span><span style="color: #000000" twffan="done">"</span><span style="color: #000000" twffan="done">&gt;</span><span style="color: #000000" twffan="done"><br />
</span><span style="color: #008080" twffan="done">&nbsp;7</span><span style="color: #000000" twffan="done"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" twffan="done"  alt="" /></span><span style="color: #000000" twffan="done">&lt;</span><span style="color: #000000" twffan="done">input&nbsp;type</span><span style="color: #000000" twffan="done">=</span><span style="color: #000000" twffan="done">button&nbsp;onclick</span><span style="color: #000000" twffan="done">=</span><span style="color: #000000" twffan="done">t('JustifyRight')&nbsp;value</span><span style="color: #000000" twffan="done">=</span><span style="color: #000000" twffan="done">"</span><span style="color: #000000" twffan="done">右对齐</span><span style="color: #000000" twffan="done">"</span><span style="color: #000000" twffan="done">&gt;</span><span style="color: #000000" twffan="done"><br />
</span><span style="color: #008080" twffan="done">&nbsp;8</span><span style="color: #000000" twffan="done"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" twffan="done"  alt="" /><br />
</span><span style="color: #008080" twffan="done">&nbsp;9</span><span style="color: #000000" twffan="done"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" twffan="done"  alt="" /></span><span style="color: #000000" twffan="done">&lt;</span><span style="color: #000000" twffan="done">input&nbsp;type</span><span style="color: #000000" twffan="done">=</span><span style="color: #000000" twffan="done">button&nbsp;onclick</span><span style="color: #000000" twffan="done">=</span><span style="color: #000000" twffan="done">t2()&nbsp;value</span><span style="color: #000000" twffan="done">=</span><span style="color: #000000" twffan="done">"</span><span style="color: #000000" twffan="done">增高</span><span style="color: #000000" twffan="done">"</span><span style="color: #000000" twffan="done">&gt;</span><span style="color: #000000" twffan="done"><br />
</span><span style="color: #008080" twffan="done">10</span><span style="color: #000000" twffan="done"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" twffan="done"  alt="" /></span><span style="color: #000000" twffan="done">&lt;</span><span style="color: #000000" twffan="done">input&nbsp;type</span><span style="color: #000000" twffan="done">=</span><span style="color: #000000" twffan="done">button&nbsp;onclick</span><span style="color: #000000" twffan="done">=</span><span style="color: #000000" twffan="done">t3()&nbsp;value</span><span style="color: #000000" twffan="done">=</span><span style="color: #000000" twffan="done">"</span><span style="color: #000000" twffan="done">减少</span><span style="color: #000000" twffan="done">"</span><span style="color: #000000" twffan="done">&gt;</span><span style="color: #000000" twffan="done"><br />
</span><span style="color: #008080" twffan="done">11</span><span style="color: #000000" twffan="done"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" twffan="done"  alt="" /></span><span style="color: #000000" twffan="done">&lt;</span><span style="color: #000000" twffan="done">script</span><span style="color: #000000" twffan="done">&gt;</span><span style="color: #000000" twffan="done"><br />
</span><span style="color: #008080" twffan="done">12</span><span style="color: #000000" twffan="done"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" twffan="done"  alt="" />window.frames[</span><span style="color: #000000" twffan="done">"</span><span style="color: #000000" twffan="done">x</span><span style="color: #000000" twffan="done">"</span><span style="color: #000000" twffan="done">].document.designMode</span><span style="color: #000000" twffan="done">=</span><span style="color: #000000" twffan="done">"</span><span style="color: #000000" twffan="done">On</span><span style="color: #000000" twffan="done">"</span><span style="color: #000000" twffan="done"><br />
</span><span style="color: #008080" twffan="done">13</span><span style="color: #000000" twffan="done"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" twffan="done"  alt="" /></span><span style="color: #008000" twffan="done">//</span><span style="color: #008000" twffan="done">setTimeout('window.frames["x"].document.designMode="On"',200)</span><span style="color: #008000" twffan="done"><br />
</span><span style="color: #008080" twffan="done">14</span><span style="color: #008000" twffan="done"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" twffan="done"  alt="" /></span><span style="color: #0000ff" twffan="done">function</span><span style="color: #000000" twffan="done">&nbsp;t(s)<br />
</span><span style="color: #008080" twffan="done">15</span><span style="color: #000000" twffan="done"><img id="Codehighlighter1_568_697_Open_Image" onclick="this.style.display='none'; Codehighlighter1_568_697_Open_Text.style.display='none'; Codehighlighter1_568_697_Closed_Image.style.display='inline'; Codehighlighter1_568_697_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" twffan="done"  alt="" /><img id="Codehighlighter1_568_697_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_568_697_Closed_Text.style.display='none'; Codehighlighter1_568_697_Open_Image.style.display='inline'; Codehighlighter1_568_697_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" twffan="done"  alt="" /></span><span id="Codehighlighter1_568_697_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" twffan="done"><img src="http://www.blogjava.net/Images/dot.gif" twffan="done"  alt="" /></span><span id="Codehighlighter1_568_697_Open_Text" twffan="done"><span style="color: #000000" twffan="done">{<br />
</span><span style="color: #008080" twffan="done">16</span><span style="color: #000000" twffan="done"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" twffan="done"  alt="" />window.frames[</span><span style="color: #000000" twffan="done">"</span><span style="color: #000000" twffan="done">x</span><span style="color: #000000" twffan="done">"</span><span style="color: #000000" twffan="done">].focus();<br />
</span><span style="color: #008080" twffan="done">17</span><span style="color: #000000" twffan="done"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" twffan="done"  alt="" />o</span><span style="color: #000000" twffan="done">=</span><span style="color: #000000" twffan="done">window.frames[</span><span style="color: #000000" twffan="done">"</span><span style="color: #000000" twffan="done">x</span><span style="color: #000000" twffan="done">"</span><span style="color: #000000" twffan="done">].document.selection.createRange();<br />
</span><span style="color: #008080" twffan="done">18</span><span style="color: #000000" twffan="done"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" twffan="done"  alt="" />window.frames[</span><span style="color: #000000" twffan="done">"</span><span style="color: #000000" twffan="done">x</span><span style="color: #000000" twffan="done">"</span><span style="color: #000000" twffan="done">].document.execCommand(s);<br />
</span><span style="color: #008080" twffan="done">19</span><span style="color: #000000" twffan="done"><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" twffan="done"  alt="" />}</span></span><span style="color: #000000" twffan="done"><br />
</span><span style="color: #008080" twffan="done">20</span><span style="color: #000000" twffan="done"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" twffan="done"  alt="" /><br />
</span><span style="color: #008080" twffan="done">21</span><span style="color: #000000" twffan="done"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" twffan="done"  alt="" /></span><span style="color: #0000ff" twffan="done">function</span><span style="color: #000000" twffan="done">&nbsp;t2()<br />
</span><span style="color: #008080" twffan="done">22</span><span style="color: #000000" twffan="done"><img id="Codehighlighter1_714_855_Open_Image" onclick="this.style.display='none'; Codehighlighter1_714_855_Open_Text.style.display='none'; Codehighlighter1_714_855_Closed_Image.style.display='inline'; Codehighlighter1_714_855_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" twffan="done"  alt="" /><img id="Codehighlighter1_714_855_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_714_855_Closed_Text.style.display='none'; Codehighlighter1_714_855_Open_Image.style.display='inline'; Codehighlighter1_714_855_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" twffan="done"  alt="" /></span><span id="Codehighlighter1_714_855_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" twffan="done"><img src="http://www.blogjava.net/Images/dot.gif" twffan="done"  alt="" /></span><span id="Codehighlighter1_714_855_Open_Text" twffan="done"><span style="color: #000000" twffan="done">{<br />
</span><span style="color: #008080" twffan="done">23</span><span style="color: #000000" twffan="done"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" twffan="done"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff" twffan="done">var</span><span style="color: #000000" twffan="done">&nbsp;obj</span><span style="color: #000000" twffan="done">=</span><span style="color: #000000" twffan="done">window.frames[</span><span style="color: #000000" twffan="done">"</span><span style="color: #000000" twffan="done">x</span><span style="color: #000000" twffan="done">"</span><span style="color: #000000" twffan="done">].frameElement;<br />
</span><span style="color: #008080" twffan="done">24</span><span style="color: #000000" twffan="done"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" twffan="done"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff" twffan="done">var</span><span style="color: #000000" twffan="done">&nbsp;height&nbsp;</span><span style="color: #000000" twffan="done">=</span><span style="color: #000000" twffan="done">&nbsp;parseInt(obj.offsetHeight);<br />
</span><span style="color: #008080" twffan="done">25</span><span style="color: #000000" twffan="done"><img id="Codehighlighter1_824_853_Open_Image" onclick="this.style.display='none'; Codehighlighter1_824_853_Open_Text.style.display='none'; Codehighlighter1_824_853_Closed_Image.style.display='inline'; Codehighlighter1_824_853_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" twffan="done"  alt="" /><img id="Codehighlighter1_824_853_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_824_853_Closed_Text.style.display='none'; Codehighlighter1_824_853_Open_Image.style.display='inline'; Codehighlighter1_824_853_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" twffan="done"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff" twffan="done">if</span><span style="color: #000000" twffan="done">&nbsp;(height</span><span style="color: #000000" twffan="done">+</span><span style="color: #000000" twffan="done">100</span><span style="color: #000000" twffan="done">&gt;=</span><span style="color: #000000" twffan="done">100</span><span style="color: #000000" twffan="done">)</span><span id="Codehighlighter1_824_853_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" twffan="done"><img src="http://www.blogjava.net/Images/dot.gif" twffan="done"  alt="" /></span><span id="Codehighlighter1_824_853_Open_Text" twffan="done"><span style="color: #000000" twffan="done">{<br />
</span><span style="color: #008080" twffan="done">26</span><span style="color: #000000" twffan="done"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" twffan="done"  alt="" />&nbsp;&nbsp;obj.height</span><span style="color: #000000" twffan="done">=</span><span style="color: #000000" twffan="done">height</span><span style="color: #000000" twffan="done">+</span><span style="color: #000000" twffan="done">100</span><span style="color: #000000" twffan="done">;<br />
</span><span style="color: #008080" twffan="done">27</span><span style="color: #000000" twffan="done"><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" twffan="done"  alt="" />&nbsp;&nbsp;}</span></span><span style="color: #000000" twffan="done"><br />
</span><span style="color: #008080" twffan="done">28</span><span style="color: #000000" twffan="done"><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" twffan="done"  alt="" />}</span></span><span style="color: #000000" twffan="done"><br />
</span><span style="color: #008080" twffan="done">29</span><span style="color: #000000" twffan="done"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" twffan="done"  alt="" /></span><span style="color: #0000ff" twffan="done">function</span><span style="color: #000000" twffan="done">&nbsp;t3()<br />
</span><span style="color: #008080" twffan="done">30</span><span style="color: #000000" twffan="done"><img id="Codehighlighter1_871_1012_Open_Image" onclick="this.style.display='none'; Codehighlighter1_871_1012_Open_Text.style.display='none'; Codehighlighter1_871_1012_Closed_Image.style.display='inline'; Codehighlighter1_871_1012_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" twffan="done"  alt="" /><img id="Codehighlighter1_871_1012_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_871_1012_Closed_Text.style.display='none'; Codehighlighter1_871_1012_Open_Image.style.display='inline'; Codehighlighter1_871_1012_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" twffan="done"  alt="" /></span><span id="Codehighlighter1_871_1012_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" twffan="done"><img src="http://www.blogjava.net/Images/dot.gif" twffan="done"  alt="" /></span><span id="Codehighlighter1_871_1012_Open_Text" twffan="done"><span style="color: #000000" twffan="done">{<br />
</span><span style="color: #008080" twffan="done">31</span><span style="color: #000000" twffan="done"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" twffan="done"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff" twffan="done">var</span><span style="color: #000000" twffan="done">&nbsp;obj</span><span style="color: #000000" twffan="done">=</span><span style="color: #000000" twffan="done">window.frames[</span><span style="color: #000000" twffan="done">"</span><span style="color: #000000" twffan="done">x</span><span style="color: #000000" twffan="done">"</span><span style="color: #000000" twffan="done">].frameElement;<br />
</span><span style="color: #008080" twffan="done">32</span><span style="color: #000000" twffan="done"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" twffan="done"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff" twffan="done">var</span><span style="color: #000000" twffan="done">&nbsp;height&nbsp;</span><span style="color: #000000" twffan="done">=</span><span style="color: #000000" twffan="done">&nbsp;parseInt(obj.offsetHeight);<br />
</span><span style="color: #008080" twffan="done">33</span><span style="color: #000000" twffan="done"><img id="Codehighlighter1_981_1010_Open_Image" onclick="this.style.display='none'; Codehighlighter1_981_1010_Open_Text.style.display='none'; Codehighlighter1_981_1010_Closed_Image.style.display='inline'; Codehighlighter1_981_1010_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" twffan="done"  alt="" /><img id="Codehighlighter1_981_1010_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_981_1010_Closed_Text.style.display='none'; Codehighlighter1_981_1010_Open_Image.style.display='inline'; Codehighlighter1_981_1010_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" twffan="done"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff" twffan="done">if</span><span style="color: #000000" twffan="done">&nbsp;(height</span><span style="color: #000000" twffan="done">-</span><span style="color: #000000" twffan="done">100</span><span style="color: #000000" twffan="done">&gt;=</span><span style="color: #000000" twffan="done">100</span><span style="color: #000000" twffan="done">)</span><span id="Codehighlighter1_981_1010_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" twffan="done"><img src="http://www.blogjava.net/Images/dot.gif" twffan="done"  alt="" /></span><span id="Codehighlighter1_981_1010_Open_Text" twffan="done"><span style="color: #000000" twffan="done">{<br />
</span><span style="color: #008080" twffan="done">34</span><span style="color: #000000" twffan="done"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" twffan="done"  alt="" />&nbsp;&nbsp;obj.height</span><span style="color: #000000" twffan="done">=</span><span style="color: #000000" twffan="done">height</span><span style="color: #000000" twffan="done">-</span><span style="color: #000000" twffan="done">100</span><span style="color: #000000" twffan="done">;<br />
</span><span style="color: #008080" twffan="done">35</span><span style="color: #000000" twffan="done"><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" twffan="done"  alt="" />&nbsp;&nbsp;}</span></span><span style="color: #000000" twffan="done"><br />
</span><span style="color: #008080" twffan="done">36</span><span style="color: #000000" twffan="done"><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" twffan="done"  alt="" />}</span></span><span style="color: #000000" twffan="done"><br />
</span><span style="color: #008080" twffan="done">37</span><span style="color: #000000" twffan="done"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" twffan="done"  alt="" /></span><span style="color: #000000" twffan="done">&lt;/</span><span style="color: #000000" twffan="done">script</span><span style="color: #000000" twffan="done">&gt;</span></div>
  <img src ="http://www.blogjava.net/Javawind/aggbug/164367.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Javawind/" target="_blank">kooyee</a> 2007-11-30 18:22 <a href="http://www.blogjava.net/Javawind/archive/2007/11/30/164367.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>