href,javascript,target浏览器地址栏内容显示不同

在做页面的时候,有遇到这样的一个问题,点击链接的时候触发js,在弹出框中显示具体的内容,以前实现时都会有下面两种写法:

1、

<a href="javascript: showDetail('')">< </a>

2、

<a href="#" onclick=” showDetail('')”></a>

3、

<a href=" javascript:void(0)" onclick=” showDetail('')”></a>

(推荐此种写法)

但是今天写成如下代码时

4.

<a href="javascript: showDetail('')" target="_blank"></a> 就报错了,弹出了下面页面

 

href中含有javascript时弹出的页面

浏览器将js作为请求url。第三种错误的写法与第一种写法也就只是差了一个target="_blank" 而浏览器对href处理的方式不同,这是为什么呢。难道href中javascript不能用target?但是当target改为target="_parent"时就可以了,然后猜想应该是浏览器对target内容处理时组织的url的原因,当是_blank时,浏览器是将href中的内容直接作为url去请求的,而_parent则不是这样的,究其原因,网上找了target的说明:

 

_blank

浏览器总在一个新打开、未命名的窗口中载入目标文档。

_self

这个目标的值对所有没有指定目标的 <a> 标签是默认目标,它使得目标文档载入并显示在相同的框架或者窗口中作为源文档。这个目标是多余且不必要的,除非和文档标题 <base> 标签中的 target 属性一起使用。

_parent

这个目标使得文档载入父窗口或者包含来超链接引用的框架的框架集。如果这个引用是在窗口或者在顶级框架中,那么它与目标_self 等效。

_top

这个目标使得文档载入包含这个超链接的窗口,用_top 目标将会清除所有被包含的框架并将文档载入整个浏览器窗口。

提示:这些 target 的所有 4 个值都以下划线开始。任何其他用一个下划线作为开头的窗口或者目标都会被浏览器忽略,因此,不要将下划线作为文档中定义的任何框架 name 或 id 的第一个字符。

 

另外调用js时总结一下打开新窗口的方式:

1.window.open('url')

2.用自定义函数

        <script>
function openWin(tag,obj)
{
obj.target="_blank";
obj.href = "Web/Substation/Substation.aspx?stationno="+tag;
obj.click();
}
</script>

<a  href="javascript:void(0)" onclick="openWin(3,this)">LINK_TEST</a>

3.window.location.href=""

 

 

 

张贴在未分类

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注