1. HTML元素<a href="#" target="_blank">链接</a>
href为链接的地址,#代表当前页面。如:
<a href="http://www.baidu.com" target="_blank">点我</a>
href还可以是javascript函数。如:
<a href="javascript:funcName();" target="_blank">点我</a> <a href="javascript:void(0);" target="_blank">点我</a><!-- 空函数 --> <a href="javascript:;" target="_blank">点我</a><!-- 没有函数 -->
target有几个可选值:
_blank 链接在新页面打开
_parent 链接在父页面打开
_self 链接在当前页面打开
_top 链接在最上级页面打开
framename 链接在指定的iframe页面打开
如果href的值是一个js函数,而target为_blank,会导致只打开一个空白页面,不会调js脚本
<a href="javascript:toGo()" target="_blank">Go</a> <script type="text/javascript"> function toGo() { alert('toGo() is invoked'); } </script>
解决方案是:
a. 将target的值改为_self。
b. 去除href属性,js函数作为onclick的值:
<a onclick="toGo();" target="_blank">Go</a>
c. href设置为空,js函数作为onclick的值:
<a href="javascript:;" onclick="toGo();" target="_blank">Go</a>
注意:此时除了执行toGo()函数外,还打开一个空页面:
2. js中如何跳转到另一个页面呢,可以使用<form>标签的target属性:
<a href="http://www.baidu.com" target="_blank">Go</a> <a href="javascript:toGo()" target="_self">Go</a> <form id="form1" method="get"> <input type="hidden" name="wd" value="" /> </form> <script type="text/javascript" src="jquery-1.7.1.js"></script> <script type="text/javascript"> function toGo() { $('#form1').attr('action', 'http://www.baidu.com/s'); $("#form1 input:hidden[name='wd']").val('terrific'); $('#form1').attr('target', '_blank'); $('#form1').submit(); } </script>
总结:当href属性值为链接地址时,target值才可以为"_blank";否则去掉target属性或者设置其为"_self"(默认值)。