超链接的那些事(三): 属性target
a标签的属性之一 target
1. 定义
规定在何处打开链接文档。
如果a标签中有target属性,浏览器将会载入和显示用这个标签的 href 属性命名的、名称与这个目标吻合的框架或者窗口中的文档。
如果指定的name和id的框架,浏览器将会打开一个新的窗口,标记此窗口,将文档载入当这个新窗口内。之后的超链接文档将会指向这个新窗口。
2. 用法
- target的目标值
target有4个特殊的值,有着不同的作用。
1)_self
这个目标值是a标签的默认值,作用是使目标文档载入并显示在相同的框架或者窗口中作为源文档。
一般情况下是不需要特意来设置这个值的,因为没有必要。除非是和<base>标签一起使用。
注: <base>标签的用法
<base>标签是为页面上的所有链接规定默认地址或默认目标。
<head>
<base href="http://www.cnblogs.com/MonkeyKingK/" />
<!-- 规定该页面所有链接的默认地址为http://www.cnblogs.com/MonkeyKingK/
所有相对地址都要基于这个路径来解析 -->
<base target="_blank" />
<!-- 规定所有链接都在一个新窗口打开 -->
</head>
<body>
<img src="test.gif" />
<!-- 实际解析地址是http://www.cnblogs.com/MonkeyKingK/test.gif -->
<a href="http://www.baidu.com">百度</a>
<!-- 实际解析地址是http://www.baidu.com -->
<a href="www.baidu.com">我打开后不是百度的页面</a>
<!-- 实际解析地址是http://www.cnblogs.com/MonkeyKingK/www.baidu.com -->
</body>
从上面的例子可以看出<base>标签规定的地址是来解析所有的相对 URL的。这包括了 <a>、<img>、<link>、<form> 标签中的 URL。
2) _blank
这个目标值表示浏览器总在一个新打开、未命名的窗口中载入目标文档。
3) _parent
这个目标值表示文档载入父窗口或者包含来超链接引用的框架的框架集。如果在窗口或者顶级框架中使用,效果和self是一样的。
4) _top
这个目标值表示文档载入在包含这个超链接的窗口中,用 _top 目标将会清除所有被包含的框架并将文档载入整个浏览器窗口。
Tip:
①. 因为存在的4个特殊目标都是带下划线(_),所以当窗口或者框架的name/id赋值时,不要将value的第一个字符赋为'_',否则会被浏览器忽略。
②. 当时用iframe时,尽可能使用iframe的name来作为指向目标,而不是id。如果使用iframe的id,在IE10和FF中是不支持的。
③. 当使用<base>标签时,<target="_blank">无效,可能导致无效的原因:
a. 用户在浏览器中设置了禁止弹出新窗口
b. <script>标签的位置