探寻<a>中的href和onclick
一、知识点:
- onclick的方法参数必须加引号
- href跳转参数有长度限制
- href中执行js会把encodeURIComponent()编码之后的东西自动解码,有时会影响参数传递
- a标签中的onclick先执行,其次是href属性下的动作(页面跳转或Js伪链接);
- 如果在href中调用一个有返回值的函数,则当前页面会被该返回值内容代替;
- 如果想让href中的动作不执行,onclick需要返回一个false;
- void是一个操作符,javascript:void (expression)表示计算表达式但是不返回值,页面不会发生任何变化;
- 尽量不要使用javascript:伪链接作为href的属性,这样不仅会导致不必要的触发window.onbeforeunload事件,在IE里面更会使gif动画图片停止播放;
- 如果仅仅想让鼠标hover的时候变成手型,可以这样<span style="cursor:pointer;" onclick="click();">Click Me!</span>
- 最安全的用法,且不会将点击方法暴露在浏览器状态栏中:<a href="####" onclick="click();return false;">Click Me!</a>
二、PS
- window.onbeforeunload:事件在即将离开当前页面(刷新或关闭)时触发。该事件可用于弹出对话框,提示用户是继续浏览页面还是离开当前页面。对话框默认的提示信息根据不同的浏览器有所不同,标准的信息类似 "确定要离开此页吗?"。该信息不能删除。
- a标签的href默认是get请求,get请求在不同浏览器中的参数长度限制不同(post方式传送数据理论上没有最大限制,取决于服务器设置和内存大小):
在IE8 下的URL地址总长度为:4076,超过该长度会自动忽略后面的内容;
在firefox 25下的URL地址总长度可以达到:7530,超过该长度会访问错误;
在chrome 29.0.1547.62 的最大总长度达到:7675,超过该长度会访问错误;