您的位置:首页 > Web前端 > CSS

在css中控制超链接target=_blank

2007-07-19 20:11 447 查看
<html>
<head>
<style type="text/css">
a:active {text:expression(target="_blank");}
a:visited {text:expression(target="_blank");}
</style>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>在css中控制超链接target="_blank"</title>
</head>
<body >
<a href="#">新窗口</a>
</body>
</html>
其实只有:a:visited {text:expression(target="_blank");} 起作用而已。
解释一下,这是利用expression来执行javascript语句,对IE5及更高版本的浏览器有效。详情请阅读:CSS中expression使用简介及相关文章。

下面是另一种方法我没有试过,麻烦。还不如直接在超链接里写了。

target="_blank"在严格的DOCTYPE下通不过验证,
target="new"只是临时的替代方法。
target="new"和target="_blank"效果是不一样的。
target="new"定义了打开的窗口名为new,所有target为new的连接都会在同一个窗口打开,而不是新窗口。
这里的new还可以是其他字符串~~例如target="fdsafjklsdjkla"

现在比较好的方法就是在链接中定义 rel="external"
然后再通过js来控制external,如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="zh-CN">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<meta http-equiv="Content-Language" content="zh-CN" />
<title>新窗口</title>
<script type="text/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;
-->
</script>
</head>

<body>
<p>
<a href="document.html" rel="external">external link</a>
</p>
</body>
</body>
</html>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: