好123导航的所有链接都是在新窗口打开的,这个是怎么实现的呢?其实就是在
标签中添加了一句代码: target=_blank,这个标签,就是解决这个问题的。
如果不加这一句,默认均为本页刷新,即target=”_self”。还有两个这样的标签,
单独定义,新窗口打开
单独定义,相同窗口打开
单独定义,整页窗口打开
单独定义,父窗口打开
另外,这只是单独设置,如果有在某个页面上有很多的链接或者form表单,逐一的添加标签会很麻烦,有没有类似批处理的呢?
这就要用到
当然,这样的标签有时也会碰到麻烦。
1 不符合标准
当我们使用W3C过渡型标准时,即DOCTYPE(xh tml1-transitional. dtd),没有问题,但是使用严格的标准时,即DOCTYPE(xhtml1-strict.dtd),就会出错,错误提示:
“there is no attribute target for this element(in this HTML version)”
原因是,外国人认为,不经过用户同意,就随便打开新窗口,是不礼貌的,不尊重用户的,可参看 http://bbs.chinahtml.com/showthread.php?t=53657
那碰到这种情况时怎么办呢?
HTML4.0增加了一个新属性:rel,这个属性用来说明链接和包含此链接页面的关系,以及链接打开的目 标。rel有许多的属性值,比如next、previous,、chapter、section等等。我们要使用的就是rel=”externa l”属性。原来这样写的代码:
打开一个新窗口 现在要写成这样:
打开一个 新窗口 这是符合strict标准的方法。当然还必须配合一个javascript才有效。
javascript
完整的代码JS如下:
function externallinks() {
if (!document.getElementsByTagName) return;
var anchors = document.getElementsByTagName(“a”);
for (var i=0; i
if (anchor.getAttribute(“href”) &&
anchor.getAttribute(“rel”) == “external”)
anchor.target = “_blank”;
}
}
window.onload = externallinks;
你可以把它保存成一个.js文件(比如external.js),然后通过外部联接方法调用:
就是这样。
2 浏览器不支持
有时,使用了上述标签,但是,任旧不见效果,比如使用了target=_blank,却不能弹出窗口,这是因为,有些浏览器被用户设置了,不让弹出窗口,当然这样设置是为了屏蔽广告,因此,这是就无法打开新窗口,知道了原因,解决就很简单了,在浏览器中设置一下就可以了。