HTML DOM MenuItemオブジェクトの使い方を徹底解説!主なプロパティと実装例
HTML DOM の MenuItem オブジェクトは、HTML の <menuitem> 要素を JavaScript から操作するためのインターフェースです。コンテキストメニュー(右クリックメニュー)に独自のコマンド項目を追加したい場合などに利用されます。
注意: <menuitem> 要素は、かつて Mozilla Firefox のみが独自にサポートしていた要素です。現在では HTML 仕様から削除され非推奨となっているため、最新のブラウザでは動作しない点に留意してください。本記事では、参考情報としてこのオブジェクトの構造と使い方を解説します。
MenuItemオブジェクトを作成する構文
<menuitem> 要素を新しく作成するには、以下のように document.createElement() メソッドを使用します。
var menuItemObject = document.createElement("MENUITEM");MenuItemオブジェクトの主なプロパティ
menuItem オブジェクトには、以下のプロパティが用意されています。いずれも値の取得(get)と設定(set)の両方が可能です。
| プロパティ | 説明 |
|---|---|
| checked | メニュー項目がチェック済みかどうかを true / false で設定・取得します |
| command | command 属性の値を設定・取得します |
| default | そのメニュー項目がデフォルト項目かどうかを設定・取得します |
| disabled | メニュー項目を無効化するかどうかを設定・取得します |
| icon | メニュー項目を表すアイコン画像の URL を設定・取得します |
| label | label 属性の値(メニューに表示されるテキスト)を設定・取得します |
| radiogroup | radiogroup 属性の値を設定・取得します |
| type | type 属性の値(command / checkbox / radio など)を設定・取得します |
MenuItemオブジェクトの使用例
ここでは、フォーム上で右クリックしたときに表示されるコンテキストメニューに、<menuitem> を使って「Get URL」と「Get Hostname」の2つの項目を追加する例を見てみましょう。
<!DOCTYPE html>
<html>
<head>
<title>Menu Object</title>
<style>
form {
width:70%;
margin: 0 auto;
text-align: center;
}
* {
padding: 2px;
margin:5px;
}
input[type="button"] {
border-radius: 10px;
}
</style>
</head>
<body>
<form contextmenu="MENU">
<fieldset>
<legend>Menu-Object</legend>
<label for="urlSelect">Current URL:</label>
<input type="url" size="30" id="urlSelect" value="https://www.example.com/aboutUs">
<div id="divDisplay"></div>
</fieldset>
<menu type="context"
id="MENU">
<menuitem label="Get URL"
onclick="contextFunction(1);">
</menuitem>
<menuitem label="Get Hostname"
onclick="contextFunction(2);">
</menuitem>
</menu>
</form>
<script>
var divDisplay = document.getElementById("divDisplay");
var urlSelect = document.getElementById("urlSelect");
function gethref(){
divDisplay.textContent = 'URL Path: '+location.href;
}
function getHostname(){
divDisplay.textContent = 'Hostname: '+location.hostname;
}
function contextFunction(role){
if(role === 1)
this.gethref();
else
this.getHostname();
}
</script>
</body>
</html>コードのポイント
- <form contextmenu="MENU"> により、フォーム内で右クリックした際に表示されるメニューとして id="MENU" の <menu> を関連付けています。
- <menu type="context"> 内に配置された2つの <menuitem> が、コンテキストメニューの項目として表示されます。
- 各 menuitem の onclick イベントで contextFunction() を呼び出し、引数に応じて URL パスまたはホスト名を画面に表示します。
出力結果
このコードを実行すると、以下のような動作になります。
▼ フォーム上で右クリックした状態:

▼ コンテキストメニューから「Get URL」をクリックした後:

▼ コンテキストメニューから「Get Hostname」をクリックした後:

まとめ
HTML DOM の MenuItem オブジェクトを使うと、コンテキストメニューに独自の項目を追加し、JavaScript で動的に制御できます。ただし、<menuitem> 要素は Firefox 専用の実装であり、すでに標準仕様から除外されているため、実際の開発ではカスタムコンテキストメニューライブラリや CSS・JavaScript による自作メニューの採用を検討することをおすすめします。
-
HTML DOM HRオブジェクトとは?作成方法と使い方を解説
HTML DOM の HR オブジェクトは、HTML 文書内の <hr> 要素を表すオブジェクトです。<hr> 要素は、コンテンツの話題やテーマの区切りを視覚的に示す水平線(罫線)として表示されます。JavaScript を使えば、この水平線を動的に生成してページに挿入することも可能です。ここでは、HR オブジェクトの基本的な作成方法と実践的な使用例を紹介します。HRオブジェクトの作成方法(構文)hr オブジェクトを新しく作成するには、document.createElement() メソッドを使用します。構文は以下のとおりです。document.createEleme
-
HTML DOM Ulオブジェクトとは?<ul>要素の操作方法とサンプルコードを解説
HTML DOM の Ul オブジェクトは、HTML の <ul>(順序なしリスト)要素を表すオブジェクトです。JavaScript を使うことで、リストの動的な生成や操作が可能になります。 <ul> 要素の作成方法 新しい <ul> 要素を作成するには、document.createElement() メソッドを使用します。 var ulObject = document.createElement(UL) HTML5で非推奨となったプロパティ ulObject には以下のプロパティが存在しますが、これらは HTML5 ではサポートされていないため注