posts - 193,  comments - 520,  trackbacks - 0
把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);
注意rowSpancolSpan中间字母都是大写的,而写成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 阅读(1440) 评论(0)  编辑  收藏 所属分类: ajax相关

只有注册用户登录后才能发表评论。


网站导航:
 
<2007年2月>
28293031123
45678910
11121314151617
18192021222324
25262728123
45678910

关注工作流和企业业务流程改进。现就职于ThoughtWorks。新浪微博:http://weibo.com/ronghao100

常用链接

留言簿(38)

随笔分类

随笔档案

文章分类

文章档案

常去的网站

搜索

  •  

最新评论

阅读排行榜

评论排行榜