ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
target 属性とは
target 属性は HTML の <a> 要素や <form> 要素で、リンク先や送信先をどのブラウジングコンテキスト(タブ / ウィンドウ / フレーム)に開くかを指定する属性です。
基本構文
<a href="https://example.com" target="開き方">テキスト</a>
<form action="/submit" target="送信先">
...
</form>
主な値
| 値 | 意味 |
|---|---|
| _self(既定) | 現在のタブ/フレームで開く |
| _blank | 新しいタブ/ウィンドウで開く |
| _parent | 親フレームで開く(iframe 階層が無ければ _self と同じ) |
| _top | 最上位のブラウザウィンドウで開く(全フレーム解除) |
| 任意の名前 | 同名のブラウジングコンテキスト(フレーム / ウィンドウ)で開く |
使用例
1. 新規タブで開く
<a href="https://example.com"
target="_blank"
rel="noopener noreferrer">
Example を新規タブで開く
</a>
2. 親フレームで開く
<a href="/parent.html" target="_parent">親フレームで開く</a>
3. 最上位ウィンドウで開く(フレーム破棄)
<a href="/index.html" target="_top">トップに戻る</a>
4. 指定 iframe 内で開く
<iframe name="contentFrame" src="default.html"></iframe>
<a href="page1.html" target="contentFrame">contentFrame に表示</a>
<a href="page2.html" target="contentFrame">contentFrame に表示</a>
rel="noopener noreferrer" を必ず付ける
target="_blank" でリンクを開くと、開かれた側のページから JavaScript で window.opener 経由で元ページを操作できてしまう「tabnabbing 攻撃」のリスクがありました。
| rel 値 | 効果 |
|---|---|
| noopener | 新規タブから window.opener を null にし、元ページへの干渉を防ぐ |
| noreferrer | Referer ヘッダを送らず、window.opener も null(プライバシー優先) |
最新のブラウザでは target="_blank" に対し暗黙的に noopener が適用されますが、古いブラウザやクローラ・SEO 工具の都合もあり、明示するのが推奨です。
<!-- 推奨パターン -->
<a href="https://example.com" target="_blank" rel="noopener noreferrer">
外部サイト
</a>
アクセシビリティ上の注意
- 新規タブで開くリンクは事前に知らせる(テキストやアイコンで明示)と親切
- スクリーンリーダー向けに
aria-labelや視覚アイコン (↗等) を併用 - 業務システム等で必要なリンクのみ _blank にする。全リンクを _blank にすると操作性が落ちる
<a href="https://example.com"
target="_blank"
rel="noopener noreferrer"
aria-label="Example(新しいタブで開きます)">
Example
<span aria-hidden="true">↗</span>
</a>
frame / iframe 廃止と target
HTML5 で <frame> / <frameset> は廃止されました。現在 target で意味があるのは主に _self / _blank / _top / _parent / iframe の name です。
JavaScript からの代替
// target="_blank" と同じ
window.open('https://example.com', '_blank', 'noopener,noreferrer');
// 引数なしで開くと従来は opener が漏れていた。
// 'noopener' を必ず指定する。
form 要素での target
<form> でも target 属性が使えます。たとえば「フォーム送信結果を別タブで表示」「PDF ダウンロードフォームを新規タブで開く」用途で便利です。
<form action="/report.pdf" method="post" target="_blank">
<button type="submit">PDF をダウンロード</button>
</form>
SEO への影響
rel="noreferrer"を付けると、リンク先のアクセス解析で参照元 URL が記録されなくなる。広告計測や被リンク分析に影響することがあるrel="nofollow"はリンクジュース(PageRank)を渡さない指示。target とは独立に併用可rel="sponsored"/rel="ugc"も併用可能(広告 / ユーザー投稿リンクの明示)
よくある誤り
| NG | OK | 理由 |
|---|---|---|
target="_BLANK" | target="_blank" | 大文字小文字は厳密には区別しないが、慣例として小文字 |
target="_blank" 単体 | target="_blank" rel="noopener noreferrer" | 古いブラウザで tabnabbing 攻撃を許す |
target="new" | target="_blank" | new は1 つのウィンドウ名として再利用される |
全リンク _blank | 外部リンク等限定 | 戻る操作の混乱・タブの乱立を招く |
関連
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページ
子ページはありません
同階層のページ
- href属性
- target属性
- download 属性
- rel 属性
- hreflang属性
- type属性
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- Unreal Engine AI MoveTo 完全ガイド(NavMesh / AIController / Behavior Tree) 2026-06-11 07:07:02
- shutdown コマンド完全ガイド(Linux / Windows / systemd の使い分け) 2026-06-11 07:07:02
- DI(依存性注入)完全ガイド(Dependency Injection / IoC / Spring / CDI / コンストラクタ・セッター注入) 2026-06-11 07:07:02
- git 用語一覧完全リファレンス(Repository / HEAD / Branch / Rebase / Stash 他) 2026-06-11 07:07:02
- TCP/IP リンク層 (ネットワークインターフェース層) 完全ガイド 2026-06-11 07:07:02
- Laravel ルート認証化完全ガイド — middleware と Gate 2026-06-11 07:07:02
- EJB完全ガイド(Stateless/Stateful/Singleton/MDB/CDIとの違い/Spring代替) 2026-06-11 07:07:02
- git log コミット履歴確認完全ガイド — oneline/graph/stat/blame 2026-06-11 07:07:02
- Laravel のインストール手順まとめ — composer / Sail / Valet / Herd と初期設定 2026-06-11 07:07:02
- CDI完全ガイド(Inject/Produces/Qualifier/Scope/Spring DIとの違い) 2026-06-11 07:07:02
- Python set 入門 — 作成方法、frozenset、内包表記、リスト重複削除 2026-06-11 07:07:02
- Apache .htaccess でベーシック認証を設定する手順(.htpasswd / htpasswd / AuthType Basic / トラブルシュート) 2026-06-11 07:07:02
- Python アプリのローカル独立配布完全ガイド(PyInstaller / wheel / Docker) 2026-06-11 07:07:02
- Laravel Eloquent モデルのデフォルト値設定 2026-06-11 07:07:02
- Unity Component 取得とキャッシュの完全ガイド(GetComponent/RequireComponent/TryGetComponent) 2026-06-11 07:07:02
コメントを削除してもよろしいでしょうか?