什么是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"不是一回事。另 外其他几个取值就不详细说了,都比较直观,用处也不多了。