入坑笔记二:火狐浏览器javascript:fun() 页面丢失

今早碰到个问题,<a href="javascript:checkStatus();" class="upload">上传</a> 这一段在结果return false之后,页面丢失了。这是校验页面状态的一个功能,如果状态为0页面就不提供上传功能。页面丢失出现在火狐浏览器上,谷歌正常。

查阅网上很多资料,我就照搬过来了,一般的点击事件:

1. a href="JavaScript:js_method();"

这是我们平台上常用的方法,但是这种方法在传递this等参数的时候很容易出问题,而且javascript:协议作为a的href属性的时候不仅会导致不必要的触发window.onbeforeunload事件,在IE里面更会使gif动画图片停止播放。W3C标准不推荐在href里面执行javascript语句

2. a href="javascript:void(0);" οnclick="js_method()"

这种方法是很多网站最常用的方法,也是最周全的方法,onclick方法负责执行js函数,而void是一个操作符,void(0)返回undefined,地址不发生跳转。而且这种方法不会像第一种方法一样直接将js方法暴露在浏览器的状态栏。      这个方法的缺点是,如果功能涉及页面整体刷新,页面不会刷新,在低版本ie上出现,因为void(0)计算为0表达式会被计算但是不会在当前文档处装入任何内容.

3.a href="javascript:;" οnclick="js_method()"

这种方法跟跟2种类似,区别只是执行了一条空的js代码。

4.a href="#" οnclick="js_method()"

这种方法也是网上很常见的代码,#是标签内置的一个方法,代表top的作用。所以用这种方法点击后网页后返回到页面的最顶端。

5.a href="#" οnclick="js_method();return false;"


这种方法点击执行了js函数后return false,页面不发生跳转,执行后还是在页面的当前位置。

网上还有其他观点,搬过来给大家参考一下:

注:其实真正不好的写法是<a href="javascript:void(0)" onclick="functionclick();">,真正的在html中混杂js行为,让html的工作者时刻做“别把哪段js不小心删了”这种不必要的担心。正确的做法应该是对<a>定义id属性,然后通过id后绑定click等事件。


另附:js return,return false,return true的区别:

return true;返回正常的处理结果.

return false;返回错误的处理结果;终止处理;阻止提交表单;阻止执行默认的行为.

return;把控制权返回给页面.

究竟需不需要return来返回值,要看函数是来做什么,如果需要让它返回一个值就写return,如果不需要它返回值,就没必须写它.




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值