把firefox下js程序向ie兼容,一直用firefox調試,今天在ie下跑跑遇到了很多問題。
1.程序中用到prototype.js,對于事件監聽,我一直這樣處理
Event.observe(job.jobDiv.timeDiv, "mousedown", eway.TimeTableDiv.selectMoveJobDiv);
在firefox下完全正常,但在ie下就找不到視圖所附加的對象了,改回來
job.jobDiv.timeDiv.onmousedown=?eway.TimeTableDiv.selectMoveJobDiv
這樣兩個瀏覽器都可以跑。附一個簡單的測試
<!DOCTYPE?HTML?PUBLIC?"-//W3C//DTD?HTML?3.2?Final//EN">
<html>
<head>????
<title></title>
<script?src="lib/prototype/prototype.js"?type="text/javascript"></script>
<script>
window.onload=function(){
??var?b=new?Button("wokao",$('simple'));
??}??
function?Button(value,domEl){
??this.domEl=domEl;
??this.value=value;
??this.domEl.buttonObj=this;
//??this.domEl.onclick=this.clickHandler;
??Event.observe(this.domEl,?"mousedown",?this.clickHandler);
}
Button.prototype.clickHandler=function(){
??var?buttonObj=this.buttonObj;
??var?value=(buttonObj?&&?buttonObj.value)??
????buttonObj.value?:?"unknown?value";
??alert(value);
}
</script>
<div?class="resizeMe"?id="simple">
????<p>This?is?just?a?clean?DIV</p>
</div>
</body>
</html>
2.處理td的跨行和跨列,都必須這樣寫
td.setAttribute("rowSpan",2);
td.setAttribute("colSpan",2);
注意
rowSpan,colSpan中間字母都是大寫的,而寫成rowspan,colspan在firefox下是沒有任何問題的。
3.在拖拽層的時候會出現鼠標經過的文字被選中的現象,解決這個問題非常簡單,當你開始拖拽前即你用鼠標點中你想要拖拽的層,這時候對事件進行處理
e=e||window.event;
if(e.stopProgation){
e.stopPropagation();
}
else{
e.cancelBubble?=?true;
}
if(e.preventDefault){
e.preventDefault();
}
else{
e.returnValue?=?false;
}?
如果使用prototype.js,可以簡單為一行代碼
Event.stop(e);
http://www.tkk7.com/ronghao 榮浩原創,轉載請注明出處:)
posted on 2007-02-13 19:07
ronghao 閱讀(1449)
評論(0) 編輯 收藏 所屬分類:
ajax相關