HTML DOMのBaseオブジェクトとは?<base>要素の使い方をサンプルコード付きで解説
HTML DOM の Base オブジェクトは、HTML の <base> 要素に関連付けられたオブジェクトです。<base> 要素は、HTML ドキュメント内の他のすべての相対URLに対する基準URL(ベースURL)を指定するために使用されます。なお、1つの HTML ドキュメント内に配置できる <base> 要素は最大1つだけです。Base オブジェクトを使うことで、<base> 要素の href 属性などを JavaScript から設定・取得できます。
Base オブジェクトのプロパティ
Base オブジェクトには、主に以下の2つのプロパティが用意されています。
| プロパティ | 説明 |
|---|---|
| href | <base> 要素の href 属性の値を設定または返します |
| target | <base> 要素の target 属性の値を設定または返します |
構文
各操作の基本構文は以下のとおりです。
base 要素を作成する場合
document.createElement("base")
base 要素にアクセスする場合
var a = document.getElementById("demoBase");
サンプルコード
それでは、base オブジェクトの具体的な使用例を見てみましょう。このサンプルでは、ボタンのクリックによって BASE 要素を「作成」したり「取得」したりできます。
<!DOCTYPE html>
<html>
<body>
<p>まず要素を作成し、その後でアクセスしてみましょう。</p>
<p>下のボタンをクリックすると、BASE 要素を作成または取得できます。</p>
<button onclick="CreateBase()">作成(CREATE)</button>
<button onclick="AcessBase()">取得(ACCESS)</button>
<p id="SAMPLE"></p>
<script>
function CreateBase() {
var x = document.createElement("BASE");
x.setAttribute("id", "myBase");
x.setAttribute("href", "https://www.google.com");
document.head.appendChild(x);
document.getElementById("SAMPLE").innerHTML = "href が https://www.google.com の BASE 要素を作成しました";
}
function AcessBase() {
var x = document.getElementById("myBase").href;
document.getElementById("SAMPLE").innerHTML = x;
}
</script>
</body>
</html>
実行結果
このコードを実行すると、最初は以下のように表示されます。

「作成(CREATE)」ボタンをクリックした場合 −

「取得(ACCESS)」ボタンをクリックした場合 −

コードの解説
上記の例では、「作成」と「取得」の2つのボタンを配置し、クリック時にそれぞれ CreateBase() 関数と AcessBase() 関数が呼び出されるようにしています。
<button onclick="CreateBase()">作成(CREATE)</button> <button onclick="AcessBase()">取得(ACCESS)</button>
CreateBase() 関数では、document.createElement("BASE") によって新しい base 要素を生成し、変数 x に格納します。続いて setAttribute() メソッドを使って、id 属性に "myBase"、href 属性に "https://www.google.com" を設定します。さらに appendChild() メソッドで、新しく作成した base 要素をドキュメントの head 内に追加します。最後に、作成完了メッセージが id が "SAMPLE" の段落に表示される仕組みです。
function CreateBase() {
var x = document.createElement("BASE");
x.setAttribute("id", "myBase");
x.setAttribute("href", "https://www.google.com");
document.head.appendChild(x);
document.getElementById("SAMPLE").innerHTML = "href が https://www.google.com の BASE 要素を作成しました";
}
一方、AcessBase() 関数は、先ほど作成した <base> 要素にアクセスするための関数です。getElementById() で id が "myBase" の要素を取得し、その href の値を変数 x に代入します。その後、変数 x の内容が id が "SAMPLE" の段落に出力されます。
function AcessBase() {
var x = document.getElementById("myBase").href;
document.getElementById("SAMPLE").innerHTML = x;
}
まとめ
Base オブジェクトを利用すれば、JavaScript から動的に <base> 要素を生成・操作できます。ただし <base> 要素は head 内に1つしか配置できないため、すでに存在する場合は上書き・置き換えの処理が必要になる点に注意しましょう。
-
HTML DOM の Object オブジェクトとは?主なプロパティと実装例をわかりやすく解説
HTML DOM の Object オブジェクトは、HTML 内の <object> 要素を JavaScript から操作するためのインターフェースです。<object> 要素は、画像や PDF、動画などの外部リソースを Web ページに埋め込む際に使用されます。 Object 要素の作成方法 JavaScript で新しい <object> 要素を作成するには、document.createElement() メソッドを使用します。 var objectElement = document.createElement(OBJECT); Object
-
HTML DOM Ulオブジェクトとは?<ul>要素の操作方法とサンプルコードを解説
HTML DOM の Ul オブジェクトは、HTML の <ul>(順序なしリスト)要素を表すオブジェクトです。JavaScript を使うことで、リストの動的な生成や操作が可能になります。 <ul> 要素の作成方法 新しい <ul> 要素を作成するには、document.createElement() メソッドを使用します。 var ulObject = document.createElement(UL) HTML5で非推奨となったプロパティ ulObject には以下のプロパティが存在しますが、これらは HTML5 ではサポートされていないため注