Computer >> 컴퓨터 >  >> 프로그래밍 >> HTML

HTML DOM Menu 객체 완벽 가이드 – 요소 생성과 활용 방법

HTML DOM의 Menu 객체는 HTML 문서 내의 <menu> 요소를 나타냅니다. 이 요소는 주로 마우스 오른쪽 버튼을 클릭했을 때 나타나는 컨텍스트 메뉴(context menu)를 정의하는 데 사용됩니다.

참고<menu> 요소는 Mozilla Firefox 브라우저에서만 지원됩니다. 따라서 크로스 브라우저 호환성이 중요한 프로젝트에서는 사용에 주의해야 합니다.

문법(Syntax)

기본 문법은 다음과 같습니다 −

<menu> 요소 생성하기:

var menuObject = document.createElement(“MENU”)

이렇게 생성된 menuObject는 일반적인 DOM 요소와 마찬가지로 속성을 설정하거나 자식 노드(<menuitem> 등)를 추가할 수 있습니다.

예제

HTML DOM Menu 요소의 실제 사용 예제를 살펴보겠습니다. 아래 예제는 폼(form)에 컨텍스트 메뉴를 연결한 뒤, 메뉴 항목을 클릭하면 현재 페이지의 URL과 호스트명을 화면에 표시합니다 −

<!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>

출력 결과

위 코드를 실행하면 다음과 같은 결과를 확인할 수 있습니다 −

폼 위에서 마우스 오른쪽 버튼을 클릭한 경우 −

HTML DOM Menu 객체 완벽 가이드 –  menu  요소 생성과 활용 방법

컨텍스트 메뉴에서 'Get URL' 메뉴 항목을 클릭한 경우 −

HTML DOM Menu 객체 완벽 가이드 –  menu  요소 생성과 활용 방법

컨텍스트 메뉴에서 'Get Hostname' 메뉴 항목을 클릭한 경우 −

HTML DOM Menu 객체 완벽 가이드 –  menu  요소 생성과 활용 방법

이 예제의 동작 원리를 정리하면 다음과 같습니다. 먼저 폼의 contextmenu 속성이 <menu> 요소의 id 값과 연결되어, 해당 폼 위에서 마우스 오른쪽 버튼을 클릭하면 사용자 정의 컨텍스트 메뉴가 나타납니다. 그리고 각 <menuitem>에 등록된 onclick 이벤트 핸들러가 contextFunction()을 호출하여, 전체 URL(location.href) 또는 호스트명(location.hostname)을 div 영역에 출력합니다.