使用如下方式的鏈接。在Chrome中點擊后行為符合預期,但在IE下會新開標簽卡(根據參考資料,Firefox中有相同問題)。
<a href=”javascript:void(0);” target=”_blank”>test</a>
后經查找資料,發現需如下解決。
通過onclick阻止瀏覽器默認事件:<a onclick=”return false;” href=”javascript:void(0);” target=”_blank”>test</a>
或直接:<a target=”_blank”>test</a>
原因在於三款瀏覽器,對三個屬性的處理順序不同。
Chrome順序:onclick -> href -> target
IE和Firefox順序:onclick -> target -> href
- <a onclick="fn()">Does not appear as a link, because there's no href</a>
- <a href="javascript:void(0)" onclick="fn()">fn is called</a>
- <a href="javascript:undefined" onclick="fn()">fn is called</a>
- <a href="javascript:" onclick="fn()">fn is called too!</a>