WEB新标准中链接弹出新窗口的解决办法

<script type="text/javascript"> <!-- google_ad_client = "pub-5706169265269327"; google_ad_width = 300; google_ad_height = 250; google_ad_format = "300x250_as"; google_ad_type = "text_image"; google_ad_channel =""; google_color_border = "FFFFFF"; google_color_bg = "FFFFFF"; google_color_link = "333333"; google_color_url = "666666"; google_color_text = "000000"; //--> </script><script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"> </script>
在xhtml1.0 Strict以及再往后的版本xhtml1.1和xhtml2.0中,去掉了target属性,而在xhtml1.0 Transitional以及更低版本中可以使用,详情见 http://blog.csdn.net/qihboy/archive/2004/12/31/236043.aspx
那么为什么要去掉这个在以前的版本中看起来很有用的属性呢?W3C是这样解释的,为了提高网页的质量,提高易用性,这一点和508 section以及AA等级有关.尽量地让链接只在一个浏览器窗口中来回跳转,而不要弹出新窗口,因为弹出的新窗口没有"后退"选项!
即使这样,我们还是要在一定的时候需要弹出新窗口来,比如说友情链接部分,我不想让我的用户因为友情链接就这样离开我的站了,怎么办?只有打开新的窗口来显示友情链接.那么在符合标准的情况下如何解决呢?那只好用javascript了.如下面的链接
<a href=”http://www.3rgb.com” οnclick=”window.open('http://www.3rgb.com');return false;” οnkeypress=”window.open('http://www.3rgb.com');return false;”>生活新色彩</a>
至于javascript弹出新窗口的用法,就不解释了.支持JS的浏览器中点击上面的链接,会弹出新窗口,由于onclick事件中有个return false,所以后面的onkeypress事件就不会发生,并且href这个事件也不会发生,也就是弹出新窗口,原窗口也不跳.如果没有return false那么原窗口和新窗口都转到 http://www.3rgb.com这个链接了.
有人要问了,那为什么后面还要加个onkeypress事件呢,并且触发的功能也是一样的?这是因为,对于一些早期版本的或是别的厂商的浏览器,不支持onclick用法,却对onkeypress用法感冒,这样的话,就兼容了绝大多数的浏览器的.
有人喜欢这样写<a href=”javascript:window.open('http://www.3rgb.com');”>生活新色彩</a>,虽然这样子可能也能通过验证(我没试过),但是这样会造成可访问性的问题.比如说,如果某个用户的浏览器禁用了javascript,甚至可能用户的浏览器根本就不支持javascript的话,那么你这个链接就成了"死链",用户无法达到他想要去的页面了,所以在我的方法里href属性不能丢,即使是最古老或是最怪异的浏览器,也会支持href属性的,当然我们牺牲了弹出新窗口这个功能,但可能对于这些极少数的用户,我们已经不会去考虑弹新窗口的问题了.
/over name="google_ads_frame" marginwidth="0" marginheight="0" src="http://pagead2.googlesyndication.com/pagead/ads?client=ca-pub-5706169265269327&dt=1133446441375&format=300x250_as&output=html&color_bg=FFFFFF&color_text=000000&color_link=333333&color_url=666666&color_border=FFFFFF&ad_type=text_image&u_h=1024&u_w=1280&u_ah=972&u_aw=1280&u_cd=32&u_tz=480&u_his=27&u_java=true" frameborder="0" width="300" scrolling="no" height="250" allowtransparency="65535">
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值