您的位置: 首页 / Design / XHTML 1.0 Strict 下在新窗口中打开链接的处理

XHTML 1.0 Strict 下在新窗口中打开链接的处理

Published at May 17, 11pm / Keywords: ,

IMAGE

略懂 HTML 的朋友都知道,如果想让一个链接在新窗口中打开,通常的做法是利用 target=”_blank” 来设定 a 标签。例如:

  1. <a href="http://blog.istef.info" target="_blank">Blog.istef.info</a>

这种做法确实比较方便,但在 XHTML 1.0 Strict 中去掉了 target 属性,也就是说我们不能再利用 target 属性来控制链接的行为。虽然当今流行的浏览器在 XHTML 1.0 Strict 甚至 XHTML 1.1 下扔能正确执行 target=”_blank”,但这样的代码毕竟是不规范的,不推荐使用。

很自然,我们会想到用 Javascript 来解决这个问题,我通常是使用下面的方法:

  1. <a href="http://blog.istef.info" onclick="window.open(this.href);return false;">Blog.istef.info</a>

这样虽然可以满足要求,但是当链接很多的时候,代码就显得有些臃肿了。为了简化代码,我们应该用 DOM Event / DHTML 的方法来解决这个问题。今天我恰好在做一个网页,需要使用 XHTML 1.0 Strict,准备自己写一个这样的 Javascript。不过幸好我养成了万事先 Google 的坏习惯,还真让我找到了一个很完善的 Javascript 弹窗代码,这段代码不仅写的漂亮,通用性强,而且还考虑到了当今流行的浏览器按下组合键点击链接的情况,已经非常完善了。代码源头在这里,作者提供了源码下载和一个演示

这段代码的通用性非常强,作者原文中举例写的也很详细,其实最简单的用法就是为需要开新窗的链接添加 rel=”external” 属性,当然,你也可以自己定制根据 class 或其它什么属性来判断。

  1. <a href="http://blog.istef.info" rel="external">Blog.istef.info</a>

当然,在网页设计中,弹出新窗口在多数情况下应该尽量避免,只在可以提高用户体验的情况下才需要使用。此外,由于有些 Pop Window Blocker 会拦截 Javascript 弹出窗口,我们可以修改这段代码,通过判断窗口是否成功建立来给出关闭弹窗过滤的提示,相信可以使用户体验提升不少。

发表您的观点或推荐本文 Loading...

3 Responses

  1. May 18, 11am / LINK / REPLY
    Gravatar

    一直使用target,看样子要升级了~

  2. May 22, 1pm / LINK / REPLY
    Gravatar

    没有必要升级为Strict;
    原因很简单,一切无法向下兼容的技术,其生命都是短暂的--

    我用XHTML Traditional

  3. Apr 16, 3pm / LINK / REPLY
    Gravatar

    http://1333.mobi
    网站也就是用XHTML 1.0 Strict标准写的的.
    大家可以参考一下.

Now, It's your Turn!

BACK TO Article / Comments