「
利用者:Sukemaru
」を編集中 (節単位)
ナビゲーションに移動
検索に移動
警告:
ログインしていません。編集を行うと、あなたの IP アドレスが公開されます。
ログイン
または
アカウントを作成
すれば、あなたの編集はその利用者名とともに表示されるほか、さまざまなメリットもあります。
スパム攻撃防止用のチェックです。 決して、ここには、値の入力は
しない
でください!
==== アクセラレータ ==== ポップアップメニューのラベルの文字列に「半角アンパサンド記号 '''<q>&</q>''' + '''半角英数字''' (またはアスキー記号)」を付記することで、アクセラレータ(アクセスキー)を設定することができる。 ラベルの先頭に連番数字などがある場合は、数字のまえにアンパサンド記号を付加して数字をアクセラレータにすることもできる。 そのさい、Shift キー付きでの入力が必要な記号は Shift キーなしで入力可能なキーのラベルと同一視される (e.g. 「'''&#'''」で '''<q>#</q>''' 記号をアクセラレータに指定した場合、JIS 配列のキーボードでは <kbd>3</kbd> キーがアクセラレータになる)。 * <span style="color:#0000c0;">'''<q>&</q>''' 記号でアクセラレータ化する文字の位置は限定されないが、<u>最初の '''<q>&</q>''' 記号のうしろの文字がアクセラレータになる</u></span>( … とおもわれる ← ポップアップメニュー内で「下線つきで表示される文字」と一致しないことがある)。 * <span style="color:#c00;">全角文字はアクセラレータにできない。</span> * <span style="color:#c00;">ラベル文字列に含まれる '''<q>&</q>''' 記号はすべてエスケープされてしまい、ポップアップメニューには表示されなくなるので、ラベルに '''<q>&</q>''' 記号を表示させたいときは、'''<q>&&</q>''' のように二重に記述する必要がある。</span> ** → 不特定の文字列 <syntaxhighlight lang="javascript" inline>String</syntaxhighlight> (文書内から抽出したテキストなど)をラベルにする場合は、あらかじめ <syntaxhighlight lang="javascript" inline>String.replace( /&/g, "&&" )</syntaxhighlight> と記述するとよい。 : ※ '''<q>&&</q>''' の記述で表示される '''<q>&</q>''' 記号は、アクセラレータにならない。 * <span style="color:#0000c0;">同じキーが重複してアクセラレータに指定されていると、そのキーを押した場合、アイテム間をトグル移動する(その場合は <kbd>Enter</kbd> キーで決定する)。</span> ** → アイテム数が多くなるメニューの場合、<syntaxhighlight lang="javascript" inline>menu.Add( "キャンセル & ", 0 );</syntaxhighlight> という行を 10 件とか 20 件ごとに挿入すると、スペースキーでポップアップメニュー内をスクロールさせることができる。 : ※「'''&<span style="background:#bfdfff;"> </span>'''」(半角アンパサンド+半角空白) で半角スペースをアクセラレータに指定したアイテムは、<kbd>Space</kbd> キーがアクセスキーになる。 <syntaxhighlight lang="javascript"> /* アクセラレータを付加する */ var menu = CreatePopupMenu(); var piyo = "LOVE & PEACE & ..."; menu.Add( "アイテム1(&1)", 1 ); // [1] キーがアクセラレータ menu.Add( "アイテム&2", 2 ); // [2] キーがアクセラレータ menu.Add( "0&3 アイテム3", 3 ); // [3] キーがアクセラレータ menu.Add( "&Hello &World &4", 4 ); // [H] キーがアクセラレータ menu.Add( piyo.replace( /&/g, "&&" ) + "(&5)", 5 ); // [5] キーがアクセラレータ menu.Add( piyo + "(&6)", 6 ); // スペースキーがアクセラレータ menu.Add( "※※※※", 0, meMenuSeparator ); // meMenuSeparator があると第一引数の文字列は無視される menu.Add( "キャンセル & ", 0 ); // スペースキーがアクセラレータ // 5つめのアイテムは "LOVE & PEACE & ..." と表示されるが // 6つめのアイテムは "LOVE PEACE ..." と表示される // ※ 6つめのアイテムと最後のアイテムでアクセラレータが重複している var ret = menu.Track( 0 ); </syntaxhighlight> <syntaxhighlight lang="javascript"> /* 10 行ごとに「キャンセル」項目を挿入し、スペースキーでスクロール可能にする */ var arr = document.Text.split( "\n" ); var menu = CreatePopupMenu(); for ( var i = 0; i < arr.length; i ++ ) { if ( i > 0 && i % 10 == 0 ) { menu.Add( "", 0, meMenuSeparator ); menu.Add( "キャンセル & ", 0 ); menu.Add( "", 0, meMenuSeparator ); } menu.Add( arr[i].slice( 0, 30 ).replace( /&/g, "&&" ), i + 1 ); } var y = menu.Track( 0 ); if ( y ) { document.selection.SetActivePoint( mePosLogical, 1, y ); } </syntaxhighlight>
編集内容の要約:
MeryWikiへの投稿はすべて、他の投稿者によって編集、変更、除去される場合があります。 自分が書いたものが他の人に容赦なく編集されるのを望まない場合は、ここに投稿しないでください。
また、投稿するのは、自分で書いたものか、パブリック ドメインまたはそれに類するフリーな資料からの複製であることを約束してください(詳細は
MeryWiki:著作権
を参照)。
著作権保護されている作品は、許諾なしに投稿しないでください!
このページを編集するには、下記の数式を計算してその答えを欄に入力してください (
ヘルプ
):
いちたすには =
キャンセル
編集ヘルプ
(新しいウィンドウで開きます)
スポンサーリンク
ナビゲーション メニュー
個人用ツール
ログインしていません
トーク
投稿記録
アカウント作成
ログイン
名前空間
利用者ページ
議論
日本語
表示
閲覧
編集
履歴表示
その他
検索
スポンサーリンク
スポンサーリンク
案内
メインページ
ヘルプ
よくある質問
マクロリファレンス
マクロライブラリ
プラグインライブラリ
構文ファイル
テーマ
寄付・開発支援
練習用ページ
開発室
開発者のブログ
ツール
スポンサーリンク