我知道這是一個做整理了交易,但這裏是我用來解決我的應用程序的問題是什麼。
if (!e.target.hasAttribute("target")) {
e.preventDefault();
e.target.setAttribute("target", "_blank");
e.target.click();
return;
}
基本上這裏發生的是我運行檢查,如果鏈接有target=_blank
屬性。如果沒有,它會阻止鏈接觸發,將其設置爲在新窗口中打開,然後以編程方式點擊它。
你可以走一步,並跳過了原始點擊的停止(和使你的代碼一大堆更加緊湊)通過嘗試這樣的:
if (!e.target.hasAttribute("target")) {
e.target.setAttribute("target", "_blank");
}
如果您正在使用jQuery的抽象掉的實施添加屬性跨瀏覽器的,你應該使用這個的e.target.setAttribute("target", "_blank")
:
jQuery(event.target).attr("target", "_blank")
您可能需要返工,以滿足您的實際使用情況,但在這裏就是我劃傷了我自己的癢。
這裏有一個demo它在行動中讓你陷入困境。
(中的jsfiddle鏈接回來這個討論..不需要一個新的標籤:))
嗯? 'target =「_ top」'不會在新窗口中打開 - 'target =「_ blank」'。 – Tomalak 2009-10-15 17:53:51
如果鏈接已經在新窗口中打開(由於target =「_ blank」),並且javascript click處理程序已在更新數據庫,爲什麼需要使用Javascript打開新窗口? – 2009-10-15 21:05:04