超链接target为_blank时的问题

[size=medium]1. HTML元素<a href="#" target="_blank">链接</a>[/size]

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有几个可选值:
[color=darkred]_blank[/color] 链接在新页面打开
[color=darkred]_parent[/color] 链接在父页面打开
[color=darkred]_self[/color] 链接在当前页面打开
[color=darkred]_top[/color] 链接在最上级页面打开
[color=darkred]framename[/color] 链接在指定的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. 将[color=orange]target[/color]的值改为[color=orange]_self[/color]。

b. 去除href属性,js函数作为[color=orange]onclick[/color]的值:

<a onclick="toGo();" target="_blank">Go</a>


c. href设置为空,js函数作为[color=orange]onclick[/color]的值:

<a href="javascript:;" onclick="toGo();" target="_blank">Go</a>

注意:此时除了执行toGo()函数外,还打开一个空页面:

[size=medium]2. 如何在新页面打开内容呢,除了<a>标签的target属性,还可以使用[color=orange]<form>标签[/color]的[color=orange]target属性[/color]:[/size]

<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>

<form>支持get和post两种提交方式;而<a>仅支持get方式。

总结:当href属性值为链接地址时,target值才可以为"_blank";否则去掉target属性或者设置其为"_self"(默认值)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值