HTML DOM アンカーのtargetプロパティとは?使い方と設定値を解説
HTML DOM アンカーのtargetプロパティとは
HTML DOMにおいて、アンカータグ(<a>)に関連付けられたtargetプロパティは、URLをクリックした後にリンク先のWebページをどこに開くかを指定するためのものです。このプロパティには、以下の値を設定できます。
target属性に指定できる値
- _blank − リンク先のドキュメントを新しいウィンドウ(新しいタブ)で開きます。
- _parent − リンク先のドキュメントを親フレームセット内で開きます。
- _top − リンク先のドキュメントをウィンドウ全体(フレームを解除した状態)で開きます。
- _self − リンク先のドキュメントを同じウィンドウで開きます。これはデフォルトの動作です。
- framename − リンク先のドキュメントを指定した名前のフレーム内で開きます。
構文
targetプロパティの基本的な構文は以下の通りです。
値を取得する場合:
anchorObject.target
値を設定する場合:
anchorObject.target = "_blank|_self|_parent|_top|framename"
サンプルコード
アンカーのtargetプロパティを実際に操作する例を見てみましょう。
<!DOCTYPE html>
<html>
<body>
<p><a id="Anchor" target="_self" href="https://www.examplesite.com">example site</a></p>
<p><a id="Anchor2" href="https://www.examplesite.com">example site</a></p>
<p>ボタンをクリックすると、target属性の値を確認・変更できます。</p>
<button onclick="getTarget1()">GetTarget</button>
<button onclick="setTarget2()">SetTarget</button>
<p id="Target1"></p>
<script>
function getTarget1() {
var x = document.getElementById("Anchor").target;
document.getElementById("Target1").innerHTML = x;
}
function setTarget2(){
document.getElementById("Anchor2").innerHTML = "Target has been set";
document.getElementById("Anchor2").target = "newframe";
}
</script>
</body>
</html>
実行結果
このコードを実行すると、次のように表示されます。

「GetTarget」ボタンをクリックした後:

「SetTarget」ボタンをクリックした後:

コードの解説
上記の例では、まずtarget属性に「_self」が設定されたアンカータグと、target属性を指定していない(デフォルトの_selfが適用される)アンカータグの2つを用意しています。
<p><a id="Anchor" target="_self" href="https://www.examplesite.com">example site</a></p> <p><a id="Anchor2" href="https://www.examplesite.com">example site</a></p>
続いて、getTarget1()関数とsetTarget2()関数をそれぞれ実行するための「GetTarget」「SetTarget」という2つのボタンを作成しています。
<button onclick="getTarget1()">GetTarget</button> <button onclick="setTarget2()">SetTarget</button>
getTarget1()は、1つ目のリンクからtargetの値を取得し、id="Target1" の段落タグ内に表示します。一方、setTarget2()は、2つ目のリンクの表示テキストを「Target has been set」に変更するとともに、targetの値をデフォルトからカスタムフレーム名「newframe」に設定し直します。
function getTarget1() {
var x = document.getElementById("Anchor").target;
document.getElementById("Target1").innerHTML = x;
}
function setTarget2(){
document.getElementById("Anchor2").innerHTML = "Target has been set";
document.getElementById("Anchor2").target = "newframe";
}
このように、targetプロパティを使えば、JavaScriptからリンクの開き方を動的に取得・変更することができます。セキュリティの観点から、_blankを指定して外部リンクを開く場合は、rel="noopener noreferrer"を併せて設定しておくことをおすすめします。
-
HTML DOM designModeプロパティの使い方を徹底解説
HTML DOMのdesignModeプロパティを使用すると、ドキュメント全体が編集可能かどうかを指定できます。このプロパティを活用することで、HTMLドキュメントはWYSIWYG(What You See Is What You Get:見たままが得られる)エディターのように動作し、ブラウザ上で直接HTMLドキュメントを編集できるようになります。designModeプロパティのデフォルト値は「off」に設定されており、これを「on」に変更することで、ドキュメントの編集が可能になります。構文designModeプロパティを設定する際の構文は以下の通りです。document.designMode
-
HTML DOMアンカーのhostnameプロパティの使い方を解説
HTML DOMのAnchor hostnameプロパティは、リンク先URLのうちホスト名(ドメイン名)のみを取得・設定するためのプロパティです。よく似たプロパティである「host」との違いは、ポート番号を含むかどうかという点にあります。host:ホスト名+ポート番号を返す(例:www.demo.com:6064)hostname:ホスト名のみを返す(例:www.demo.com)hostnameプロパティを設定する構文hostnameプロパティに値を設定する場合は、以下のように記述します。anchorObj.hostname = hostname上記の「hostname」には、設定したいUR