Posted in Javascript onApril 18, 2014
很多人都曾经这么使用Javascript
<a href="#" onclick="al()">保存</a>
上面的代码,很方便使用,所有浏览器都支持
虽然我很早就看过一些书,说html,css,js分开来,比较容易维护,但是我贪图方面,还是经常这么写,不过我今天用火狐调试的时候发现,还是不要行内写了,因为这样很不安全,因为用火狐的firebug可以轻松让代码失效!
下面看一下为什么:
<html> <head> <script> function al() { alert("good"); } </script> </head> <body> <a href="#" onclick="al()">保存</a> </body> </html>
上面的代码是点击标签弹出对话框
效果如图:
但是如果我在火狐里面找到a标签并把里面的js代码去掉的话,在单击a标签就不会弹出对话框了,如下图
所以假如你这个单击事件是判断用户输入数据是否合法的话,那么就无法判断了
本人是做asp.net的,今天就发现这个问题,因为asp.net服务器控件,有两个单击事件,一个前台一个后台的,我用前台的单击事件判断用户的输入数据,合法的话调用后台事件,结果用火狐调试,就发现了上面介绍的现象,即使数据不合法也直接调用后台方法了,也许我这个不是什么技术,不过我为自己发现这个问题而高兴,特此发文章分享一下,哈哈
解决方法:
给a标签个id ,如下面就可以了
<a id="a1" href="#">保存</a> <script> document.getElementById("a1").onclick=function(){} </script>
实例说明为什么不要行内使用javascript
声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。
Reply on: @reply_date@
@reply_contents@