私はこれを行うと契約を整理ですけど、ここで私は私のアプリで問題を解決するために使用しているものです。基本的には何がここで起こっている
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を使用していた場合
jQuery(event.target).attr("target", "_blank")
あなたはあなたの正確なユースケースに合わせて、それを手直しする必要があるかもしれませんが、ここで私は自分のかゆみに傷方法は次のとおりです。属性クロスブラウザを追加するのではe.target.setAttribute("target", "_blank")
の代わりにこれを使用する必要があります。
ここでは、demoのメッセージが表示されます。
は、私は個人的には単一のリンク用である場合、次のコードを使用して好む
Hm? 'target =" _ top "'は新しいウィンドウでは開きません。 'target =" _ blank "'はそうです。 – Tomalak
リンクが既に新しいウィンドウで開かれている場合(target = "_ blank"のため)、javascriptのクリックハンドラがデータベースを更新しているため、新しいウィンドウをJavascriptで開く必要がありますか? –