如何解决浏览器兼容问题?

yanbin976525069 2010-10-24 11:32:06
请教大家:
在网页制作中,经常遇到浏览器不兼容的问题,导致相同的脚本在不同的浏览器中出现不同的效果。
对于这样的问题,大家如何解决的呢?
请高手指教!
...全文
213 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
yanbin976525069 2010-10-31
  • 打赏
  • 举报
回复
真的谢谢大家!给我这么详细的介绍!
qqzhuyuehe 2010-10-29
  • 打赏
  • 举报
回复
火龙果回答的很好,顶!
楼主可以碰到具体的问题,再具体的寻找解决办法!
  • 打赏
  • 举报
回复
果子解析的够清楚。还是要从代码中入手。
Rangers_Sword 2010-10-29
  • 打赏
  • 举报
回复
...
  • 打赏
  • 举报
回复
上面这仅仅是浏览器兼容的极其小的两点,一般可以使用 JavaScript 的 X 库,但现在好像 X 库的网站(http://www.cross-browser.com/)打不开了,郁闷!

一般来说 JavaScript 框架也可以使用,他们都屏蔽了浏览器不兼容的问题。
  • 打赏
  • 举报
回复
跨浏览器的 JavaScript 脚本开发时,需要掌握各浏览器 JavaScript 特有的语法,可以使用一些技巧屏蔽差异。

比如,对于事件 event 的处理,IE 是直接使用 window.event,而 Firefox 是通过参数传入的,比如有个 move 事件,可以这样进行兼容:

move : function(event) {
event = window.event || event;
var x = event.pageX ? event.pageX : event.clientX + document.body.scrollLeft;
var y = event.pageY ? event.pageY : event.clientY + document.body.scrollTop;
}


再比如,对某一对象添加一个事件,在 IE 中一般使用 attachEvent 函数,而在 Firefox 中使用 addEventListener,看下面的 Event.addEvent 函数代码:

/**
* 事件处理工具类
*
* @author bao110908
*/
var Event = {}

Event = {

/**
* 为 element 使用 handler 处理程序添加至 event 事件
* 兼容 IE 及 Firefox 等浏览器
*
* 例如为 botton 对象添加 onclick 事件,使用 clickEvent
* 方法作为处理程序:
* Event.addEvent(botton, 'click', clickEvent);
*
* @param element 需要添加事件的对象(Object)
* @param event 需要添加的事件名称(String),不加“on”
* @param handler 需要添加的方法引用(Function)
*/
addEvent : function(element, event, handler) {
if(element.attachEvent) {
element.attachEvent('on' + event, handler);
} else if (element.addEventListener) {
element.addEventListener(event, handler, false);
} else {
element['on' + event] = handler;
}
},

/**
* 添加事件处理程序时,只能添加一个方法的引用,并不能给
* 方法加上参数。比如定义了 clickEvent(str) 这个方法,现
* 在要将其作为 obj 的 onclick 的事件处理程序,就可以用:
* obj.onclick = Event.getFuntion(null, clickEvent, str);
*/
getFunction : function(obj, fun) {
var args = [];
obj = obj || window;
for(var i = 2; i < arguments.length; i++) {
args.push(arguments[i]);
}
return function() {
fun.apply(obj, args);
};
}
}

23,404

社区成员

发帖
与我相关
我的任务
社区描述
Java 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧