??xml version="1.0" encoding="utf-8" standalone="yes"?>
W?U情况主要是注意你所取得的数据来自文本还是页面传递,q个很容易解冻I注意整个目~码格式和获取到的数据格式一Pl一使用UTF-8~码。主要说说第2U和W?U情c(din)?br />
调试数据q
在确认了W?U情况下无ؕ码时Q但在myeclipse控制台输Z文ؓ(f)q。原因是英文pȝ默认昄格式文,应将pȝ控制面板
</property>
<filter-name>CharacterEncoding</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>ignore</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CharacterEncoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
]]>
]]>
]]>
集合cd象问?/span>
现有代码中存在许?document.form.item("itemName") q样的语句,不能?FF 下运?br />
解决Ҏ(gu)Q?br />
改用 document.form.elements["elementName"]
说明:IE?可以使用()或[]获取集合cd?Firefox?只能使用[]获取集合cd?
解决Ҏ(gu):l一使用[]获取集合cd?
window.event
现有问题Q?br />
使用 window.event 无法?FF 上运?br />
解决Ҏ(gu)Q?br />
FF ?event 只能在事件发生的现场使用Q此问题暂无法解冟뀂可以这样变通:(x)
原代?可在IE中运?Q?br />
<input type="button" name="someButton" value="提交" onclick="javascript:gotoSubmit()"/>
<script language="javascript">
function gotoSubmit() {
alert(window.event); // use window.event
}
</script>
C?可在IE和FF中运?Q?br />
<input type="button" name="someButton" value="提交" onclick="javascript:gotoSubmit(event)"/>
<script language="javascript">
function gotoSubmit(e) {
e = e? e : (window.event ? window.event : null);
alert(e);
}
</script>
此外Q如果新代码中第一行不改,与老代码一L(fng)话(?gotoSubmit 调用没有l参敎ͼ(j)Q则仍然只能在IE中运行,但不?x)出错。所以,q种Ҏ(gu) tpl 部分仍与老代码兼宏V?/p>
HTML 对象?id 作ؓ(f)对象名的问题
现有问题Q?br />
?IE 中,HTML 对象?ID 可以作ؓ(f) document 的下属对象变量名直接使用。在 FF 中不能?br />
解决Ҏ(gu)Q?br />
?getElementById("idName") 代替 idName 作ؓ(f)对象变量使用?/p>
用idName字符串取得对象的问题
现有问题Q?br />
在IE中,利用 eval(idName) 可以取得 id ?idName ?HTML 对象Q在FF 中不能?br />
解决Ҏ(gu)Q?br />
?getElementById(idName) 代替 eval(idName)?/p>
变量名与?HTML 对象 id 相同的问?/span> event.x ?event.y 问题 关于frame 父结点的问题 const 问题 body 对象 URLencoding nodeName ?tagName 问题 元素属?/span> 兼容firefox?outerHTMLQFF中没有outerHtml的方?/span> if (window.HTMLElement) { HTMLElement.prototype.__defineGetter__("outerHTML",function() { if(!this.canHaveChildren) HTMLElement.prototype.__defineGetter__("canHaveChildren",function() { 事g委托Ҏ(gu) document.body.onload=function(){inject(arg);}; })(arg) innerText在IE中能正常工作Q但是innerText在FireFox中却不行. padding 问题 消除ulol{列表的~进?br />
样式应写?list-style:none;margin:0px;padding:0px; CSS透明 CSS圆角 CSS双线凹凸Ҏ(gu)
现有问题Q?br />
?FF 中,因ؓ(f)对象 id 不作?HTML 对象的名Uͼ所以可以用与 HTML 对象 id 相同的变量名QIE 中不能?br />
解决Ҏ(gu)Q?br />
在声明变量时Q一律加?var Q以避免歧义Q这样在 IE 中亦可正常运行?br />
此外Q最好不要取?HTML 对象 id 相同的变量名Q以减少错误?/p>
现有问题Q?br />
在IE 中,event 对象?x, y 属性,FF中没有?br />
解决Ҏ(gu)Q?br />
在FF中,与event.x {效的是 event.pageX。但event.pageX IE中没有?br />
故采?event.clientX 代替 event.x。在IE 中也有这个变量?br />
event.clientX ?event.pageX 有微妙的差别Q当整个面有滚动条的时候)(j)Q不q大多数时候是{效的?br />
如果要完全一P可以E麻?ch)些Q?br />
mX = event.x ? event.x : event.pageX;
然后?mX 代替 event.x
其它Q?br />
event.layerX ?IE ?FF 中都有,具体意义有无差别未试验?/p>
现有问题Q?br />
?IE?可以用window.testFrame取得该frameQFF中不?br />
解决Ҏ(gu)Q?br />
在frame的用方面FF和ie的最主要的区别是Q?br />
如果在frame标签中书写了以下属性:(x)
<frame src="/xx.htm" id="frameId" name="frameName" />
那么ie可以通过id或者name讉Kq个frame对应的window对象
而FF只可以通过name来访问这个frame对应的window对象
例如如果上述frame标签写在最上层的window里面的htm里面Q那么可以这栯?br />
IEQ?window.top.frameId或者window.top.frameName来访问这个window对象
FFQ?只能q样window.top.frameName来访问这个window对象
另外Q在FF和ie中都可以使用window.top.document.getElementById("frameId")来访问frame标签
q且可以通过window.top.document.getElementById("testFrame").src = 'xx.htm'来切换frame的内?br />
也都可以通过window.top.frameName.location = 'xx.htm'来切换frame的内?/p>
在FF中没?parentElement parentElement.children 而用 parentNode parentNode.childNodes
childNodes的下标的含义在IE和FF中不同,FF使用DOM规范QchildNodes中会(x)插入I白文本节点?br />
一般可以通过node.getElementsByTagName()来回避这个问题。当html中节点缺失时QIE和FF对parentNode的解释不同,例如
<form>
<table>
<input/>
</table>
</form>
FF中input.parentNode的gؓ(f)form, 而IE中input.parentNode的gؓ(f)I?br />
FF中节Ҏ(gu)有removeNodeҎ(gu)Q必M用如下方?node.parentNode.removeChild(node)
现有问题Q?br />
?IE 中不能?const 关键字。如 const constVar = 32; 在IE中这是语法错误?br />
解决Ҏ(gu)Q?br />
不?const Q以 var 代替?/p>
FF的body在body标签没有被浏览器完全d之前存在,而IE则必dbody完全被读入之后才存在
在js中如果书写urlq接写&不要?amp;例如var url = 'xx.jsp?objectName=xx&objectEvent=xxx';
frm.action = url那么很有可能url不会(x)被正常显CZ至于参数没有正确的传到服务器
一般会(x)服务器报错参数没有找?br />
当然如果是在tpl中例外,因ؓ(f)tpl中符合xml规范Q要?amp;书写?amp;
一般F(xin)F无法识别js中的&
现有问题Q?br />
在FF中,所有节点均?nodeName |?textNode 没有 tagName 倹{在 IE 中,nodeName 的用好象有问题
解决Ҏ(gu)Q?br />
使用 tagNameQ但应检其是否为空?/p>
IE?input.type属性ؓ(f)只读Q但是FF下可以修?br />
document.getElementsByName() ?document.all[name] 的问?br />
?IE 中,getElementsByName()、document.all[name] 均不能用来取得多个具有相同name的div 元素集合?/p>
HTMLElement.prototype.__defineSetter__("outerHTML",function(sHTML) {
var r=this.ownerDocument.createRange();
r.setStartBefore(this);
var df=r.createContextualFragment(sHTML);
this.parentNode.replaceChild(df,this);
return sHTML;
});
var attr;
var attrs=this.attributes;
var str="<"+this.tagName.toLowerCase();
for (var i=0;i<attrs.length;i++) {
attr=attrs[i];
if(attr.specified)
str+=" "+attr.name+'="'+attr.value+'"';
}
return str+">";
return str+">"+this.innerHTML+"</"+this.tagName.toLowerCase()+">";
});
switch(this.tagName.toLowerCase()) {
case "area":
case "base":
case "basefont":
case "col":
case "frame":
case "hr":
case "img":
case "br":
case "input":
case "isindex":
case "link":
case "meta":
case "param":
return false;
}
return true;
});
}
自定义属性问?/span>
说明:IE?可以使用获取常规属性的Ҏ(gu)来获取自定义属?也可以用getAttribute()获取自定义属?FF?只能使用getAttribute()获取自定义属?
解决Ҏ(gu):l一通过getAttribute()获取自定义属?
event.srcElement问题
说明:IE?even对象有srcElement属?但是没有target属?Firefox?even对象有target属?但是没有srcElement属?
解决Ҏ(gu):使用obj(obj = event.srcElement ? event.srcElement : event.target;)来代替IE下的event.srcElement或者Firefox下的event.target.
window.location.href问题
说明:IE或者Firefox2.0.x?可以使用window.location或window.location.href;Firefox1.5.x?只能使用window.location.
解决Ҏ(gu):使用window.location来代替window.location.href.
模态和非模态窗口问?/span>
说明:IE?可以通过showModalDialog和showModelessDialog打开模态和非模态窗?Firefox下则不能.
解决Ҏ(gu):直接使用window.open(pageURL,name,parameters)方式打开新窗?br />
如果需要将子窗口中的参C递回父窗?可以在子H口中用window.opener来访问父H口. 例如Qvar parWin = window.opener; parWin.document.getElementById("Aqing").value = "Aqing";
IEQdocument.body.onload = inject; //Function inject()在这之前已被实现
FFQdocument.body.onload = inject();
如果要加传递参敎ͼ可以做个闭包
(function(arg){
解决Ҏ(gu):
if(navigator.appName.indexOf("Explorer") > -1){
document.getElementById('element').innerText = "my text";
} else{
document.getElementById('element').textContent = "my text";
}
FF中类?obj.style.height = imgObj.height 的语句无?/span>
解决Ҏ(gu)Q?br />
obj.style.height = imgObj.height + 'px';
IE,FF以及(qing)其它览器对?table 标签的操作都各不相同Q在ie中不允许对table和tr的innerHTML赋|使用js增加一个trӞ使用appendChileҎ(gu)也不用
解决Ҏ(gu)Q?br />
//向tableq加一个空行:(x)
var row = otable.insertRow(-1);
var cell = document.createElement("td");
cell.innerHTML = " ";
cell.className = "XXXX";
row.appendChild(cell);
样式部分
-----------------------------------------------------------------------------------------------------------
cursor:hand VS cursor:pointer
FF不支持handQ但ie支持pointer
解决Ҏ(gu): l一使用pointer
padding 5px 4px 3px 1px FireFox无法解释?
必须Ҏ(gu) padding-top:5px; padding-right:4px; padding-bottom:3px; padding-left:1px;
其中margin属性对IE有效Qpadding属性对FireFox有效
IEQfilter:progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=60)
FFQopacity:0.6
IEQ不支持圆角
FFQ?-moz-border-radius:4pxQ或?moz-border-radius-topleft:4px;-moz-border- radius-topright:4px;-moz-border-radius-bottomleft:4px;-moz-border-radius- bottomright:4px;
IEQborder:2px outset;
FFQ?-moz-border-top-colors: #d4d0c8 white;-moz-border-left-colors: #d4d0c8 white;-moz-border-right-colors:#404040 #808080;-moz-border-bottom-colors:#404040 #808080;
]]>
]]>
首先从网上下载最新版的服务器端YӞ׃它是开源的Q有很多家公司开发出了不同的服务器端软gQ我使用的是VisualSVNQ安装上之后?x)在C盘根目录有个“Repositories”的文件夹Q它是用来存攑֮L(fng)提交上来的文件的地方。打开VisualSVN ServerQ添加一个Repositories
输入名称服务器端配|完成了Q之后ؓ(f)myeclipsedSVN插g
在线安装svn插g
菜单?Help-- Find and Install-- 按new Remote Site,Name?svn , URL?font style="color: #ff0000">http://subclipse.tigris.org/update ,一直next到finished为止
在myeclipse的package Explorer的空白处右键点击"Import"Q选择Others里的“Checkout Projects from SVN”
输入URL、用户名?qing)密码就可以从SVN上签出工E了。URL可以是IP也可以是域名?br />
]]>
LocationQ输入服务器端文件存放位|?br />
NameQ输入服务器名称
DescriptionQ描qͼ可以不输Q?br />
点击选项卡上的Server settings
Run asQ输入用户名
注意CVS Server端口q个选项Q?401为CVS的连接端口,如果是用家庭\由器的用户需要做端口映射Q把q个端口做个映射
讄完成之后Ҏ(gu)开myeclipseQ在package栏目里右键点importQ选择CVS
选择Create a new repository location
输入服务器的IPQ如果是路由器远E访问,需要输入动态IPQ和存放工程的文件夹
]]>
2 <web-app xmlns="http://java.sun.com/xml/ns/javaee"
3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.5"
4 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
5 <servlet>
6 <servlet-name>Connector</servlet-name>
7 <servlet-class>
8 net.fckeditor.connector.ConnectorServlet
9 </servlet-class>
10 <load-on-startup>1</load-on-startup>
11 </servlet>
12 <servlet-mapping>
13 <servlet-name>Connector</servlet-name>
14 <url-pattern>
15 /fckeditor/editor/filemanager/connectors/*
16 </url-pattern>
17 </servlet-mapping>
18 <filter>
19 <filter-name>struts2</filter-name>
20 <filter-class>
21 org.apache.struts2.dispatcher.FilterDispatcher
22 </filter-class>
23 </filter>
24 <filter-mapping>
25 <filter-name>struts2</filter-name>
26 <url-pattern>*.action</url-pattern>
27 </filter-mapping>
28 <filter-mapping>
29 <filter-name>struts2</filter-name>
30 <url-pattern>*.jsp</url-pattern>
31 </filter-mapping>
32 <listener>
33 <listener-class>
34 org.springframework.web.context.ContextLoaderListener
35 </listener-class>
36 </listener>
37 <welcome-file-list>
38 <welcome-file>index.jsp</welcome-file>
39 </welcome-file-list>
40 </web-app>
41
]]>