跨平台(格式化)event
来源: 阅读:851 次 日期:2014-08-15 17:22:48
温馨提示: 小编为您整理了“跨平台(格式化)event”,方便广大网友查阅!

在前面一篇文章写了javascript事件对象,Dom和IE的对象在不同浏览器下是不同的,如果要跨平台使用则要格式化event或者是叫补充不同的属性和方法.为了更简单些,直接讲window IE下的属性或者方法进行调整,使其拥有Dom的方法或属性.IE下没有Dom的一些方法或者属性,则通过IE的方法或者属性来转换或者定义为Dom的属性

直接上代码,在代码中解释

<script language="javascript">

var foraspcn = new Object;//这个不用解释了,上一篇温江对这个已经详细说明了.

foraspcn.format_event = function(oEvent)//这里的oEvent 是传过来的window的属性event,或者是Dom的唯一函数<网站制作学习网>

{

var sUserAgent = navigator.userAgent;

var isIE = sUserAgent.indexOf("compatible")>-1 &&sUserAgent.indexOf("MSIE")>-1&&!sUserAgent.indexOf("Opera")>-1;

var isWin = (navigator.platform == "Win32") || (navigator.platform == "Windows");

if(isIE && isWin)

{oEvent.charCode = (oEvent.type == "keypress")?oEvent.keyCode:0;

//IE中的字符代码是在keypress事件发生时包含到keyCode属性中,如果要创建charCode则直接返回keyCode否则返回0

oEvent.eventPhase = 2;

//设置eventPhase 为2始终是冒泡阶段

oEvent.isChar = (oEvet.charCode > 0);

//如果判断是不是字符时,IE下判断charCode是否大于0,如果大于则表示是,返回真.反之假

oEvent.pageX = oEvent.clinetX +document.body.scrollLeft;

oEvent.pageY = oEvent.clinetY +document.body.scrollTop;

//Dom中鼠标的位置在ie中获取鼠标的位置clinet(不包含滚动条),再加上滚动条的位移<网站制作学习网>

oEvent.preventDefault = function(){this.returnvalue = false;}

//直接定义阻止默认事件为false

if(oEvent.type == "mouseout")

{

oEvent.relatedTaget = oEvent.toElement;

}else if(oEvent.type == "mouseover")

{

oEvent.relatedTarget = oEvent.fromElement;

}

//通过不同的事件来定义ralatedTarget,看IE的属性中是不一样的.

oEvent.stopPropagation = function(){this.cancelBubble = true;}

//直接设置stopPropagation 为IE中的cancelbubble = true;

oEvent.target = oEvent.srcElement;

oEvent.time = (new Date().getTime());

}

return oEvent;

}

//调用格式化event//<网站制作学习网>

foraspcn.get_event = function(){

if(window.event)

{

return this.format_event(window.event);//如果是IE则进行格式化window.event

}

else

{

return foraspcn.format_event.caller.arguments[0];//如果不是IE则调用调用函数的第一个参数即Dom的event

}

}

</script>

学习中........

更多信息请查看IT技术专栏

更多信息请查看脚本栏目
手机网站地址:跨平台(格式化)event
由于各方面情况的不断调整与变化, 提供的所有考试信息和咨询回复仅供参考,敬请考生以权威部门公布的正式信息和咨询为准!

2025国考·省考课程试听报名

  • 报班类型
  • 姓名
  • 手机号
  • 验证码
关于我们 | 联系我们 | 人才招聘 | 网站声明 | 网站帮助 | 非正式的简要咨询 | 简要咨询须知 | 加入群交流 | 手机站点 | 投诉建议
工业和信息化部备案号:滇ICP备2023014141号-1 云南省教育厅备案号:云教ICP备0901021 滇公网安备53010202001879号 人力资源服务许可证:(云)人服证字(2023)第0102001523号
云南网警备案专用图标
联系电话:0871-65317125(9:00—18:00) 获取招聘考试信息及咨询关注公众号:
咨询QQ:526150442(9:00—18:00)版权所有:
云南网警报警专用图标
Baidu
map