您的位置:首页 > 其它

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

2005-01-07 15:01 387 查看
<!--
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";
//-->

在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” onclick=”window.open('http://www.3rgb.com');return false;” onkeypress=”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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: