Html元素引起多次加载页面的问题分析

本文转自http://blog.csdn.net/kimera/article/details/7567685

一、Button元素

button各个浏览器的表现,在w3c中,标准的button,其type是submit,等效于<input type=”submit” value=”xxx”/>

浏览器 type 行为 解决办法
Firefox submit 会提交表单 指定type
chrome submit 会提交表单 指定type
ie6 button 不会提交表单  
ie7 button 不会提交表单  
ie8 submit 会提交表单
  1. 当指定type为button时,则可以避免误用button。 如 <button type=”button” οnclick=”dosomething();”>我不是提交</button>。
  2. 可以在onclick事件添加return false;避免提交, 如 <button οnclick=”dosomething(); return false;”>我不是提交</button>。
  3. 通过在页面head处添加页面以ie7兼容模式查看,也可解决<meta http-equiv=”X-UA-Compatible” content=”IE=EmulateIE7″ />
ie9 submit(未测) 会提交(未测) ie9不支持xp,暂时无法测试,其号称是支持标准最规范,那么其默认是submit

综上所述,为了避免button在各个浏览器中解析的问题,在使用 button时,最佳方案应手动设置其type的类型,即使是submit。或者最佳用input控件

二、img,link,scriptr的src问题

当以下代码出现在html中
<link type=”text/css” href=”#” rel=”stylesheet” />
<script type=”text/javascript” src=”#”></script>
<script type=”text/javascript” src=”?”></script>
<link type=”text/css” href=”?” rel=”stylesheet” />
<img src=”#” />
<img src=”?” />
这些代码会引发将当前页面的输出流作为其src的值,造成页面的二次加载。在浏览器接收流时,会判断其格式(文本或图片)。当发现格式不匹配会主动关闭与服务器之间的连接。引发服务器抛出异常:ClientAbortException。

三、超链接的href问题

当A标签的href=”#”或href=”?”不会引发多次加载页面的问题。常见的会在a标签href赋值#,javascript:;,或javascript:void();其不同的值在不同的浏览器有不同的表现,会产生不同的行为。

href值 行为 优点 缺点
# 锚点会定位到页头 锚点使用可以快速定位当前页面中的位置 页面会有跳动
javascript:;和javascript:void(0); 无响应,死链接 在当前位置进行操作响应(如ajax请求,dom元素控制) 当需要页面整个刷新或跳转时在ie6下会不成功

当需要页面做一些处理后时行页面整个的提交或页面跳转,有以下方法
<a href=”#” οnclick=”checkAndSubmit();return false;”>判断再提交</a>
<a href=”###” οnclick=”checkAndSubmit();”>判断再提交</a>
<a href=”javascrpt:checkAndSubmit();”>判断再提交</a>
推荐第一种方案。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值