我有以下代码:
<a href='#' class='link'>Click Me</a>
<script type="text/javascript">
$(".link").on('click', function(){
event.preventDefault();
console.log('This will appear on Chrome, but not in Firefox');
});
</script>
Run Code Online (Sandbox Code Playgroud)
显然代码中有错误,因为我在函数参数中没有“event”变量。令人惊讶的是,Chrome 控制台不会报告任何错误,并且会执行 console.log 行。如果是 Firefox,它将抛出以下错误:“ReferenceError:事件未定义”,并将停止代码执行。
为什么Chrome浏览器没有报错?是否还有其他例外情况,Chrome 会忽略明显有错误的代码?
jsfiddle: https: //jsfiddle.net/ArturoO/L3hym4r2/3/ 提前致谢!
小智 5
原因是 Chrome 和 IE 都有一个全局event对象。这意味着您的代码基本上是使用window.event而不是缺少的参数。
所以从 Chrome 的角度来看,这段代码实际上根本没有 bug。event它按预期使用全局。
在某些浏览器中定义了其他全局变量,而在其他浏览器中则没有。这些不是错误,因为允许主机环境创建自己的主机对象。
| 归档时间: |
|
| 查看次数: |
327 次 |
| 最近记录: |