Re: <base target="_black"> 與 javascript: URL

再加一行:
<a href="">another test</a>
在上述三款浏览器下均弹出新标签页。

从效果来看 base 标签应该影响了整个网页,与 URI 是否以 javascript: 开头无关。


2012/9/13 Kang-Hao (Kenny) Lu <kanghaol@oupeng.com>:
> dh 在群裡講到了一個不兼容,就是在
>
>   <base target="_blank" />
>   <a href="javascript:void(0);">test</a>
>
> 的情況,IE、FF 不彈窗,Chrome 不彈窗。所以,根據規範,到底是:
>
>   A. IE、FF 正確
>   B. Chrome 正確
>   C. 規範沒講
>
> 我一時沒時間去看這個部份,請人來規範解讀一下。

HTML5 草案(20120912)的 4.2.3 章节(<base> 元素)也提到 target 属性的内容
“指定了‘文档’中超链接与表单产生跳转时所用的默认浏览上下文”(粗译仅供参考):
http://dev.w3.org/html5/spec/single-page.html#attr-base-target
(... which specifies which browsing context is to be used as the default
when hyperlinks and forms in the Document cause navigation.)

既然用了 <a>,各浏览器的分歧就是 void(0); 到底有没有产生页面跳转了。

从我常见的实作来看,void() 通常用来避免页面跳转影响 onclick 事件的触发
(个人很反感这种 href 属性),连 # 跳转也不会产生:
<p style="height:120%">&nbsp;</p><a href="javascript:void();">test</a>
上行代码在三款浏览器中均不会跳转至页面顶部。

因此个人认为页面跳转不会产生,Chrome 更符合最新规范——选 B 项。

Best wishes,
Dean (@xslidian)

>
> Franky 有一篇提到這個問題的長文[1],可以參考一下(可惜沒講到規範的樣子
> :p)。
>
>
>
> [1] http://www.cnblogs.com/_franky/archive/2012/07/05/2577141.html
>
> 以上
>
> Kenny
> --
> Web Specialist, Oupeng Browser, Beijing
> Try Oupeng: http://www.oupeng.com/
>

Received on Thursday, 13 September 2012 13:51:12 UTC