什么是target?
按照国际惯例,这里先介绍一下target的家庭基本情况
1、基本情况
a标签有一个神奇的属性,就是target
。这个属性可以规定在什么地方打开链接页面。如果a标签有 这个值,那么当打开href里面的地址的时候,就会按照target指定的姿势去打开,如果指定的姿势有误,那么浏览器就会新开 一个窗口,给这个窗口一个标识,然后将文档打开。
2、取值情况
_blank
:在新窗口打开页面_self
:在当前窗口打开,也可能是当前框架_parent
:在父框架中打开新页面_top
:在整个窗口中打开新页面framename
:在指定的框架中打开被链接文档
"blank"和"_blank"的关系
问了6个同学,target="blank"
什么意思?结果5个都说错了,1个说是属性等于值,可能我的问题就 是个坑。依然本着能装一次是一次的态度,继续本文的“胡扯”!target="blank"
这个没有任何错误,对比上面的取值情况可以看出,这个应该是framename
,如果页面中有这个一个frame,那么一切正常;但是如果没有的话,走的逻辑是这个
“如果指定的姿势有误,那么浏览器就会新开一个窗口,给这个窗口一个标识,然后将文档打开。”
简单的举一个例子:A页面有几个链接,target属性的值是blank,那么当你打开页面的时候,确实在新窗口打开了 。我们小心翼翼的在打开的页面看下window.name
会发现值是blank
,这个时候如果再打开A页面的其他链接,会发现并没有在新窗口打开,而是覆盖掉了刚才打开的页面。因为target指定的值是一样的
总结一下就是:blank不是属性值,而是framename,所以这里是不是blank都无所谓,随便一个字符串都行。
target=framename的应用
通过上面的解释我们可以看出,当target=framename的时候,只能新打开一个窗口,因为后打开的会覆盖掉。这个 东西有什么用呢?可以看下优酷的视频。视频同时只能看一个,所以优酷的做法是target="video"
通过分析我们发现,在不能同时打开多个的场景中,这个target简直太合适不过了
当然,万事都不是那么完美。包括IE在内的浏览器对这个属性支持都没有任何问题,经测,我360安全浏览器可能本着用户看这个视频的时候缓冲另外一个的思想,忽略了这个属性。
最后的最后
如果你还在写target="blank"
请你知晓这个东西和target="_blank"
不是一回事。另 外其他几个取值就不详细说了,都比较直观,用处也不多了。