target="_blank"とtarget="_new"の使い分け:事例から学ぶベストプラクティス

2024-04-02

HTMLにおけるtarget="_blank"とtarget="_new"の違い

動作の違い

  • target="_blank": 常に新しいウィンドウまたはタブを開きます。すでに同じ名前のウィンドウまたはタブが開いている場合でも、新しいウィンドウまたはタブが開きます。

使用例

  • target="_blank":
    • 外部サイトへのリンク
    • 広告リンク
    • 新しいページを開いて操作したい場合
  • target="_new":
    • 同じサイト内の別のページを開きたい場合
    • 複数のページを開き比べて検討したい場合

互換性

  • target="_blank": HTML 4.01から標準でサポートされています。
  • target="_new": HTML 4.01で非推奨となり、HTML5では削除されました。一部のブラウザでは動作しますが、互換性が保証されないため、使用は避けた方が良いです。

セキュリティ上の注意点

  • target="_blank": ユーザーが意図せず新しいウィンドウを開いてしまう可能性があり、悪意のあるサイトに誘導されるリスクがあります。

ユーザービリティ

  • target="_blank": 開いたウィンドウが多すぎると、ユーザーが混乱してしまう可能性があります。

結論




<a href="https://www.google.com/" target="_blank">Google</a>

上記のコードは、Googleのサイトを新しいウィンドウまたはタブで開きます。

target="_new"

<a href="https://www.yahoo.com/" target="_new">Yahoo!</a>

上記のコードは、Yahoo!のサイトを新しいウィンドウで開きます。ただし、すでにYahoo!のサイトが開いている場合は、そのウィンドウで開きます。

<a href="https://www.bing.com/" target="_self">Bing</a>
<a href="https://www.apple.com/" target="_parent">Apple</a>

上記のコードは、Appleのサイトを親フレームで開きます。

<a href="https://www.amazon.com/" target="_top">Amazon</a>



HTMLで新しいウィンドウを開く他の方法

JavaScriptを使用して、新しいウィンドウを開くことができます。

window.open("https://www.microsoft.com/");
var newWindow = window.open("https://www.adobe.com/", "_blank");

上記のコードは、Adobeのサイトを新しいウィンドウで開き、newWindow 変数にそのウィンドウを代入します。

onclick イベント

<a href="https://www.facebook.com/" onclick="window.open(this.href, '_blank'); return false;">Facebook</a>

上記のコードは、Facebookのサイトを新しいウィンドウで開き、デフォルトの動作 (現在のウィンドウで開く) をキャンセルします。

form サブミット

<form> 要素の target 属性を使用して、新しいウィンドウでフォームをサブミットすることができます。

<form action="https://www.twitter.com/" target="_blank">
  <input type="submit" value="Submit">
</form>

注意点

新しいウィンドウを開く方法はいくつかありますが、ユーザービリティやセキュリティを考慮して、適切な方法を選択する必要があります。

JavaScript を使用して新しいウィンドウを開く場合は、ユーザーに分かりやすく説明する必要があります。


html


見やすく・おしゃれなリスト作成!HTMLとCSSで交互に背景色を設定するテクニック

HTMLまず、HTMLでリストを作成します。例として、番号付きリスト(ol要素)と箇条書きリスト(ul要素)のそれぞれで説明します。番号付きリスト箇条書きリストCSS次に、CSSでリスト項目に交互に背景色を設定します。 以下は、奇数番目のリスト項目に薄い灰色 (#f0f0f0)、偶数番目のリスト項目に白 (#fff) を設定する例です。...


JavaScriptで要素を挿入: insertAdjacentHTML、insertBefore、cloneNodeの使い分け

このチュートリアルでは、HTML、jQuery、および append() メソッドを使用して、ある要素を別の要素の後に追加する方法を説明します。この方法は、動的にコンテンツをページに追加したり、DOM を操作したりするのに役立ちます。例次の例では、<p> 要素を <div> 要素の後に追加する方法を示します。...


JavaScript、jQuery、HTMLを使ってブラウザのウィンドウ/タブが閉じられた時にlocalStorage項目を削除する方法

以下のコードは、window オブジェクトの beforeunload イベントに処理を登録し、ウィンドウ/タブが閉じられる前に localStorage 項目を削除します。beforeunload イベントと同様に、unload イベントもウィンドウ/タブが閉じられる前に発生します。以下のコードは、unload イベントを使って localStorage 項目を削除します。...


【初心者向け】画像を中央揃え!HTMLとCSSでdiv要素内に画像を水平方向に中央揃えする方法

Webページを作成する際、画像をきれいに配置することは重要です。特に、div要素内に画像を水平方向に中央揃えしたい場合は、いくつかの方法があります。ここでは、HTMLとCSSを使用して画像を水平方向に中央揃えする方法を2つご紹介します。方法1: display: flex を使用する...


Flexboxで要素を等幅に並べる:width, flex-grow, margin, padding の設定方法

原因Flexboxで要素が等幅にならない主な原因は3つあります。子要素に幅が設定されている子要素に width プロパティが設定されている場合、Flexboxは等幅レイアウトを適用できません。子要素の幅を解除するには、width: auto を設定します。...