把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.blogjava.net/ronghao 荣浩原创,转载请注明出处:)
posted on 2007-02-13 19:07
ronghao 阅读(1441)
评论(0) 编辑 收藏 所属分类:
ajax相关