用 JS 来控制 target 链接属性
来源:网络编辑社区 发布时间:2007-10-08 12:59:00
链接的 target 属性怎么用 JS 来控制? 在HTML 4.0 Strict和XHTML 1.0 STRICT里不允许在<a>标签里使用target属性,这是一件令网页设计者懊恼的事。在过渡的规范里还是允许使用的,但通过一定的方法,我们可以解决这一问题。
HTMl4.0规范里拿掉了target属性,但它添加了另外一个属性:rel。这个属性是用来指定包含链接的文档和所链接文档之间的关系的。规范里定义了其属性值(如:next,previous,chapter,section),在这些属性里大多数是用来定义一个大文档里各个小部分之间的关系的。事实上,规范里允许开发人员自由的使用非标准属性值做特定的运用。
在这里,我们采用一个自定义值external用于rel属性来标记一个链接,用来新开一个窗口。
不符合最新Web标准的链接代码:
<a href="document.html" target="_blank">external link</a>
运用rel属性:
<a href="document.html" rel="external">external link</a>
现在我们构建了一个符合Web标准的新开窗口的链接,我们还需要运用JavaScript是其实现新开窗口。脚本要实现的工作是当网页加载时,找到文档里的所有那些我们定义为rel="external"的超链接。
首先我们要判断浏览器.
if (!document.getElementsByTagName) return;
getElementsByTagName是DOM1标准里一个容易使用的方法,且它被现在的大多数浏览器所支持,因为一些旧的浏览器如Netscape 4和IE4不支持DOM1,所以我们必须通过判定这一方法是否存在来排除这些旧版本的浏览器。
下一步,我们通过getElementsByTagName方法取得文档里所有的<a>标签:
var anchors = document.getElementsByTagName("a");
anchors被赋值为包含各个<a>标签的数组,现在我们必须遍历各个<a>标签并且修改它:
for (var i=0; i < anchors.length; i++) {
var anchor = anchors;
找到要实现新开窗口的<a>标签
if (anchor.getAttribute("href") &&
anchor.getAttribute("rel") == "external")
接下来.建立属性值target并赋值"_target":
anchor.target = "_blank";
完整的代码:
function externalLinks() {
if (!document.getElementsByTagName) return;
var anchors = document.getElementsByTagName("a");
for (var i=0; i<anchors.length; i++) {
var anchor = anchors;
if (anchor.getAttribute("href") &&
anchor.getAttribute("rel") == "external")
anchor.target = "_blank";
}
}
window.onload = externalLinks;
猜你喜欢
- 数据库在时回加for xml auto调用方法 SqlCommand SqlComm=
- flash_url : "../swfupload/swfupload_f8.swf" upload_url: &quo
- 可输入的下拉列表框(select),这个不同于网页上常见的下拉列表框,那个是只能选择不能输入的,而这个是可以自己输入文字的。例如:我们最常见
- 阅读上一章:Chapter 9 精简标签Part 2: Simplebits Of Style 简短精悍的样式Chap
- 系列目录:1. 服务器XMLHTTP(Server XMLHTTP in ASP)基础2. 
- 前几天帮人调试一个ASP+SQL2000+IIS5.1/6.0的网站程序,调试过程中遇到的问题如下:一、 SQLServer登录 原先存在备
- 不得不承认,傲游在用户体验方面是做得比较好的,所以它的用户群非常大。也正因为如此,它的某些不好的特性也造成了开发人员不可忽略的浏览器兼容问题
- 有这样一个要求,它要创建一个SQL Server查询,其中包括基于事件时刻的累计值。典型的例子就是一个银行账户,因为你每一次都是在不同的时间
- SQL Server数据库查询速度慢的原因有很多,常见的有以下几种:1、没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷)
- 如何利用Image Data Type从数据库中读取图片,并在主页中显示图形?然后,写如下代码:< % @&nbs
- 问题:因为有的友情连接的网站关闭或者网络连接较慢导致连接的LOGO图片显示不出来或者显示很慢.在IE下面老是提示剩下几项没打开,看起来很不舒
- 在IE 浏览器中使用 jquery的fadeIn() 效果 英文字符字体加粗的解决方法分享。<div id='tes
- 【简 介】熟悉网页设计的网友就知道,调用Style的方法很多,我们可以单击鼠标右键选择Custon Style来调用Style标准,也可以在
- javascript编写的窗口代码,可以关闭显示窗口,可以最小化或还原窗口大小,还可以鼠标移动窗口,不错的一个功能。截图如下:<htm
- 近日,有关微软Open XML标准的问题又引发了某些业内人士的关注。其一是因为日前ISO(国际标准组织)成员南非和巴西相继就ISO批准微软的
- 只需要在fckeditor\editor\filemanager\connectors\asp文件夹下的commands.asp修改一下即可
- Oracle物理结构故障是指构成数据库的各个物理文件损坏而导致的各种数据库故障。这些故障可能是由于硬件故障造成的,也可能是人为误操作而引起。
- 作者:Rung András原文:How To Engage Customers In Your E-Commerce Website对于我
- 尽管现代浏览器已经支持了众多的CSS3属性,但是大部分设计师和开发人员貌似依然在关注于一些很“主流”的属性,如border-radius、b
- 该语句的作用是:启用或禁用错误处理程序。一般用法如下:On Error Resume NextOn Error GoTo 0如果在您的代码中