target=”new”,target=”_blank”与rel=”external”,不可调合的矛盾
- 2007-12-3
- 分类:XHTML+CSS
- 作者:银子
- 474 次查看
在新开窗口的这个问题上,已经讨论过很多次, 大多数人认为不经用户同意就弹开一个新页面是不礼貌的作法.但中国人的习惯,就是喜欢弹出很多个页面,(据说与以前用电话线上网时,多开多个窗口,下载完所有页面,把猫一关,然后看网页可以省不少网费,如今虽没有网费的问题,但新开N个窗口却做为一个习惯流传下来了)
个人也反对新开窗口,无耐需求如是,按照过渡期的办法target=”new”;问题却出现了,使用这种方法后,只能新开一个窗口,再次点击链接始终只能在那一个窗口显示.
这时我想到了rel属性,这个HTML4.0时添加的属性有一个关于新开窗口的属性值:external;使用这个属性值时还必须用到javascript
代码如下:
function externallinks() {
if (!document.getElementsByTagName) return;
var anchors = document.getElementsByTagName("a");
for (var i=0; i<anchors.length; i++) {
var anchor = anchors[i];
if (anchor.getAttribute("href") &&
anchor.getAttribute("rel") == "external")
anchor.target = "_blank";
}
}
window.onload = externallinks;
if (!document.getElementsByTagName) return;
var anchors = document.getElementsByTagName("a");
for (var i=0; i<anchors.length; i++) {
var anchor = anchors[i];
if (anchor.getAttribute("href") &&
anchor.getAttribute("rel") == "external")
anchor.target = "_blank";
}
}
window.onload = externallinks;
为了个新开个窗口,写下这么多行代码,似乎有点不值,SO,最后我选择了不符合标准的写法:target=”_blank”;
问题解决了
标准有时真难捉摸,也许它本身也在不断完善中…

