用 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; 


标签:target,链接,js
0
投稿

猜你喜欢

  • Adobe发布Flash Player 10正式版

    2008-10-15 17:15:00
  • ASP 错误代码

    2009-05-11 12:38:00
  • Oracle 当前用户下所有表的记录总数

    2009-07-14 21:34:00
  • asp清理站点缓存代码

    2008-07-21 12:37:00
  • 如何让新页面在新窗口打开?

    2009-04-12 19:41:00
  • Web2.0时代的网页视觉设计

    2008-07-13 14:07:00
  • ASP.NET在IIS一些问题经验总结

    2007-08-07 15:42:00
  • asp之自动闭合HTML/ubb标签函数+简单注释

    2008-09-29 12:21:00
  • SQL Server和MySql中创建临时表

    2008-06-19 13:31:00
  • js 返回 utf-8 字符编码是多少个字节, 函数 fUtf8BoundCheck

    2010-07-31 18:59:00
  • ASP教程:自己写的数据库操作类

    2008-11-21 17:29:00
  • ASP 调用dll及封装dll实例

    2011-03-17 10:47:00
  • Oracle如何直接运行OS命令(上)第1/2页

    2010-07-30 12:54:00
  • ASP程序种如何调用DLL文件

    2008-01-15 19:12:00
  • 跨浏览器让javascript文件携带图片数据

    2011-03-31 17:12:00
  • SQL临时表递归查询子信息并返回记录的代码

    2012-08-21 11:06:19
  • css分页放大镜效果

    2008-11-02 15:35:00
  • IE下,事件触发那点破烂事儿

    2009-04-27 12:31:00
  • 需要掌握的八个CSS布局技巧

    2008-05-17 11:45:00
  • 分享个asp文件缓存代码,使程序从缓存读数据

    2011-03-09 19:47:00
  • asp之家 网络编程 m.aspxhome.com