javascript方面的有关问题,但是在JS区一直没人回答,求帮忙
javascript方面的问题,但是在JS区一直没人回答,求帮忙
是关于浏览器兼容的,因为IE跟DOM标准不一样,有些代码写法不一样,所以会写这样的兼容语句
但是这个三目运算不是判断e的bool值然后确定是e还是event吗?
然后我就写了这样一段
就是一个单击事件,然后看d到底是为e还是event,我在360极速浏览器和ie9下测试
360极速浏览器会一次弹出this is e!!
this is event 跟坐标
而IE9则只弹出this is e!!跟坐标
我混乱了,为什么极速浏览器会把e跟event两个值都显示呢?
那这里的e到底是个什么类型的数据,e? 判断的又是什么...
下面那个是javascript区的帖子连接
http://topic.csdn.net/u/20120714/19/6ba18b2f-e876-4df9-8639-b46de11139b3.html?28446
------解决方案--------------------
写法有问题 你这样变成2个变量了 如果2个相等 则自然弹2次
是关于浏览器兼容的,因为IE跟DOM标准不一样,有些代码写法不一样,所以会写这样的兼容语句
- JScript code
d=e?e:event;
但是这个三目运算不是判断e的bool值然后确定是e还是event吗?
然后我就写了这样一段
- JScript code
<script> document.onclick=function(e) { d=e?e:event; if(d==e) {alert("this is e!!");} if(d==event) {alert("this is event");} alert(d.clientX+":"+d.clientY); } </script>
就是一个单击事件,然后看d到底是为e还是event,我在360极速浏览器和ie9下测试
360极速浏览器会一次弹出this is e!!
this is event 跟坐标
而IE9则只弹出this is e!!跟坐标
我混乱了,为什么极速浏览器会把e跟event两个值都显示呢?
那这里的e到底是个什么类型的数据,e? 判断的又是什么...
下面那个是javascript区的帖子连接
http://topic.csdn.net/u/20120714/19/6ba18b2f-e876-4df9-8639-b46de11139b3.html?28446
------解决方案--------------------
写法有问题 你这样变成2个变量了 如果2个相等 则自然弹2次
- JScript code
function(e) { e=e||window.event; if(window.event) {alert("this is event!!");} else {alert("this is e");} //下面这个 也未必兼容 alert(d.clientX+":"+d.clientY); }
------解决方案--------------------
两个都弹出说明e和event是一个东西
------解决方案--------------------
e是event的时候,你的运算符只会判断e是否是null值,和e是不是bool没关系,别忘了js是弱类型的。