[会员中心]    [设为主页][加入收藏][发布文章]  [中文繁體]
电脑
软件
手机
软件
网站
源码
文章
资料
    文 章 搜 索
[选项]
    推 荐 文 章       More...
华硕易电脑(ASUS Eee PC 1025C)驱动程序(Windows XP)安装参考(图) 华硕易电脑(ASUS Eee PC 1025C..
  先来段开场白:为了外出携..
Acronis True Image 使用说明 Acronis True Image 使用说明
  一款可以在Windows下使用..
Norton Ghost 使用详解 Norton Ghost 使用详解
一、分区备份   使用Ghost..
Windows 2000/XP/2003 系统封装参考及工具 Windows 2000/XP/2003 系统封..
  一直以来,安装操作系统和..
    阅 读 排 行
Intel GMA 3600 V1.15 for Windows XP 驱动程序配置过程图解 Intel GMA 3600 V1.15 for Window..
Intel GMA 3600 V1.15 for Window..
夏普(SHARP) AR-1808S 以 A4 尺寸纸张扫描 夏普(SHARP) AR-1808S 以 A4 尺..
  新装的夏普(SHARP) AR-1808S..
中国电信的家庭宽带设置“端口映射”及获取公网IP地址 中国电信的家庭宽带设置“端口映..
  现在有些家庭/店铺安装了视..
路由器串联(路由器的分支再接一个路由器) 路由器串联(路由器的分支再接一..
  问题:路由器的分支再接一个..
XHTML 中 a 标签 target 属性失效的解决方法 XHTML 中 a 标签 target 属性失..
  在HTML 4.01/XHTML 1.0/XHTML..
19寸液晶显示器更换显卡后没有分辨率 1440*900 19寸液晶显示器更换显卡后没有分..
  宿舍的电脑更换显卡后,驱动..
申请/注销/关闭腾讯QQ空间 申请/注销/关闭腾讯QQ空间
  申请/注销/关闭腾讯QQ空间网..
电脑机箱(主板)前面板 USB 数据线的接线参考(图) 电脑机箱(主板)前面板 USB 数据..
  一、概述   因为每个 US..
  文 章 信 息
    XHTML 中 a 标签 target 属性失效的解决方法
[留言][评论][收藏]
[文章分类:电脑系统/网络/网站设计/开发/优化][字体:隶体/楷体/宋体/黑体][字号:12px/14px/16px/18px][颜色:] 
  在HTML 4.01/XHTML 1.0/XHTML 1.1严格DOCTYPE(XHTML 1.0 Strict)下,<a>标签的target属性失效,即target="_blank"等控制将失效,无法通过W3C的校验,只有采用过渡型的DOCTYPE(XHTML1-transitional.dtd)。

  为了严格地通过W3C的校验,我们只有想办法避免使用target属性。我看到有人在网上提出在<head>元素中加入:<base target="_blank" />。<base>是一个链接基准标记,用以改变页面中所有链接标记的参数默认值。表面上这样可以避免问题,但是我们从官方资料上可以看到,base标签的target属性已经被去掉了,并且base被强制要求加入href属性http://liorean.web-graphics.com/xhtml/comparison.loose-strict.html。因此,此法肯定不行。

  我在网上搜集了两种方法,都是用JS解决的。从理论上讲,这些应该是最好的方法了。

1.使用CSS+JS,比较规范,但是如果浏览器屏蔽弹出窗口,就不好使了
<script>
function test1()
{
window.open(this.href,"","");
return false
}
function test2()
{
window.open(this.href,"51windows","top=10,height=10,width=240,height=180");
return false
}
</script>

<style>
.newwin1 {haiwa:expression(this.onclick=test1)}
.newwin2 {haiwa:expression(this.onclick=test2)}
</style>

<a href="about:blank" class=newwin1>新窗口</a><br />
<a href="about:blank" class=newwin2>新窗口</a><br />

2.单纯使用JS,在需要的<a>标签中加入rel=external。当然,你也可以把external换成别的,前提是你要看懂下面的程序,并加以修改。
function outlinks() {
   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";
   }
}

     虽然问题可以解决,但仍然是不舒服的,因为在HTML时代很简单的一件事情,现在变得如此麻烦。我总觉得XHTML这个标准在这里是不是有点不合理,或许真的有他的道理,希望能见到更好的官方或者民间的解决方法。

文章作者:未知  整理日期:2010-10-20
[文章浏览:][打印文章][发送文章]
相关文章
·table 建站,div 和 XHTML 建站的不同 2010-10-19
·我对 XHTML 不支持 target 属性的联想 2010-10-20
·使XHTML Strict 支持 target 标签 2010-10-20
阅读说明
·本站大部分文章转载于网络,如有侵权请留言告知,本站即做删除处理。
·本站法律法规类文章转载自[中国政府网(www.org.cn)],相关法律法规如有修订,请浏览[中国政府网]网站。
·本站转载的文章,不为其有效性,实效性,安全性,可用性等做保证。
·如果有什么问题,或者意见建议,请联系[网站管理员]
原“浪人文章”网站改名“老若尔文章站”,域名:article.lre.cn
本站使用【啊估文章站】网站系统    [联系网站管理员]         闽ICP备08009617号