40
4

5 に答える 5

46

リンクのみで構成されるページがある場合は、を検討して<base target="_blank">ください。これにより、すべてのリンクが新しいウィンドウで開きます(ただし、でオーバーライドされない限り、フォームのターゲットも含まれます<form target="_self">

他の人が示しているように、HTMLソースを変更せずに、Javascriptを使用してすべてのタグを反復処理し、属性<a>targetを追加するか、ターゲット属性を動的に設定するイベントリスナーを追加できます。

于 2012-09-02T11:31:50.690 に答える
32

jQueryをお持ちの場合は簡単です

$("a").attr("target", "_blank");

または通常のJavascript

var links = document.links;
for (var i = 0; i < links.length; i++) {
     links[i].target = "_blank";
}

@Lekensteynの提案によると、Javascriptなし(完全性のために追加)

<base target="_blank">.
于 2012-09-02T11:31:16.573 に答える
13

CSS:いいえ
。JavaScript:クリックイベントを委任します。これtarget="_blank"により、リンクのクリック時に属性が追加されます。

document.body.addEventListener(function(e) {
    if (e.target.nodeName.toUpperCase() === 'A' && e.target.href) {
        e.target.target = '_blank';
    }
}, true);

注:<a>要素に他の要素が含まれている場合は、ツリーをトラバースして、アンカー要素がクリックされているかどうかを確認することをお勧めします。

document.body.addEventListener(function(e) {
    var target = e.target;
    do {
        if (target.nodeName.toUpperCase() === 'A' && target.href) {
            target.target = '_blank';
            break;
        }
    } while (target = target.parentElement);
}, true);

または、jQueryが好きな場合:

$('body').on('click', 'a', function(e) {
    e.target.target = '_blank';
});
于 2012-09-02T11:31:09.380 に答える
1

うん、uは値'_blank'で'target'という名前のHTMLドキュメント内のすべてのリンクにJSの属性を追加できます;)

これを使用して、urlからjavascript:openInWindow(url)へのすべてのリンクのreplace hrefを開くこともできます。また、JSで関数を記述して、新しいウィンドウを開き、その場所をurlに設定します;)Googleが両方を支援します。

于 2012-09-02T11:32:10.960 に答える
1

baseJavascriptを使用してページにhtml要素を追加するだけです。

var e = document.createElement("base");
e.target = "_blank";
document.head.appendChild(e); 
于 2020-03-15T21:28:37.330 に答える