<更新記録>
2008年 6月 20日
執筆

姉妹サイトから検索 Web検索

SWT - JavaでGUIプログラミング
きままにインデックス
PHPノート
ゴルフ道具研究所


RightContext改良版

RightContextでは、 オリジナルのRightContextの使い方について解説しました。
そして、オリジナルのRightContextでは、どうしてもメニューを表示するためのHTMLタグにcontext属性を追加しなければなりませんでしたが、 これでは、HTMLの規格にきちんと準拠した文書になりません。 (HTMLやXHTMLのDTDには、contextという属性が登場してもいいとはされていない)

そのため、RightContextのスクリプトを少しいじって、 context属性を付けなくても可能なように変更しました。
変更したファイルはこちらからダウンロードすることができます。

変更内容と使い方は、rightcontext.jsの最初にコメントとして記述してありますが、 (私の英語はおかしくて読めないかもしれないし、)あえてここでも説明しておきます。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja">
<head>
<meta http-equiv="Content-Type" content="application/xml; charset=UTF-8"/>
<meta http-equiv="Content-Style-Type" content="text/css"/>
<meta http-equiv="Content-Script-Type" content="text/javascript"/>
<link rel="stylesheet" type="text/css" href="./rightcontext/rightcontext.css" />
<script type="text/javascript" src="./rightcontext/rightcontext.js"></script>
<title></title>
</head>
<body>
<span id="myTrigger">メニュー表示</a>
<script type="text/javascript">
// <![CDATA[

var menu1 = {
	attributes: 'myAttr1,myAttr2',
	items: [
		{
			type:RightContext.TYPE_MENU,
			text:'item 1',
			onclick:function() {alert('item 1 clicked')}
		},
		{
			type:RightContext.TYPE_SEPARATOR
		},
		{
			type:RightContext.TYPE_MENU,
			text:'item 2',
			onclick:function() {alert('item 2 clicked')}
		},
		{
			type:RightContext.TYPE_MENU,
			text:'item 3',
			onclick:function() {alert('item 3 clicked')}
		}
	]
};

RightContext.addMenu('menu1', menu1);

var myTrigger = document.getElementById('myTrigger');
RightContext.addTrigger(myTrigger, 'menu1');

// ]]>
</script>

</body>
</html>

HTML要素に、context属性を付けなくてよくなった代わりに、 メニューのトリガにしたい要素を、Javascriptコードにおいて手動で追加しなくてはなりません。
追加するにはRightContext.addTrigger()メソッドを使用します。 第一引数には追加したい要素を、第二引数にはメニューの名前を指定します。
実行結果は、RightContextと全く同じになります。


Powered by VeryEasyCMS