<div class="codetitle"> <span><a style="CURSOR: pointer" data="49171" class="copybut" id="copybut49171" onclick="doCopy('code49171')"><u>コードをコピーします</u></a></span> コードは次のとおりです:</div> <div class="codebody" id="code49171"> <br><!--メニュー スタイル--> 🎜><STYLE type=text/css> <br>.cMenu { <br>BORDER-RIGHT: #000000 1px ソリッド; <br>BORDER-TOP: #000000 1px ソリッド; <br> フォントサイズ: 14 ピクセル; <br>可視性: 非表示; <br> 境界線: #000000 ソリッド; <br>カーソル: デフォルト; <br> ラインの高さ: 20px; <br>BORDER-BOTTOM: #000000 1px ソリッド; <br>フォントファミリー: Verdana、Arial、Helvetica、サンセリフ; <br>BACKGROUND- COLOR: # eeeeff <br>} <br>.menuitems { <br>PADDING-RIGHT: 5px; <br>PADDING-LEFT: 5px <br>} <br></STYLE> =cMenu id ="contextMenu" onmouseover=highLightMenu() onmouseout=lowLightMenu()> <br><DIV class=menuitems clickcall="alert('履歴の実行ステータスを表示');">履歴の実行ステータスを表示</ DIV><br><DIV class=menuitems clickcall="alert('コメントの表示');">コメントの表示</DIV> <br><DIV class=menuitems clickcall="alert('コメントの挿入/変更' );">コメントの挿入/変更</DIV> <br><HR color=#aaaaaa size="0"> <br><DIV class=menuitems clickcall="alert('About'); ">概要</DIV> <br></DIV> <br><SCRIPT type="text/javascript"> <br>var contextMenu = document.getElementById("contextMenu"); <br> 関数getObjectName() <br>{ <br>return document.getElementById("cv.id").value; <br>} <br>function getRVContent() <br>{ <br>var objName = getObjectName(); 🎜>return eval("document.getElementById('RVContent" objName "');"); <br>} <br>function overWriteRightClick()//ポップアップ メニューを書き換えます<br>{ <br>var objName = getObjectName (); <br>eval("oCV" objName ".rvMainWnd.displayContextMenu = displayContextMenu;"); <br>} <br>function disableRightClick() <br>{ <br>var objName(); 🎜 >eval("oCV" objName ".bCanUseCognosViewerContextMenu = false;"); <br>} <br>/* メニュー関連関数 start*/ <br>function displayContextMenu(evt) { <br>evt = (evt) ? evt : ((event) ? イベント : null); <br>hideContextMenu(); <br>var rightedge = getRVContent().clientWidth - evt.clientX; <br>varbottomedge = getRVContent().clientHeight - evt.clientY ; <br>if (rightedge < contextMenu.offsetWidth) <br>contextMenu.style.left = getRVContent().scrollLeft evt.clientX - contextMenu.offsetWidth - getRVContent().offsetLeft; <br>else <br>contextMenu。 style .left = getRVContent().scrollLeft evt.clientX - getRVContent().offsetLeft; <br>if (bottomedge < contextMenu.offsetHeight) <br>contextMenu.style.top = getRVContent().scrollTop evt.clientY - contextMenu . offsetHeight - getRVContent().offsetTop; <br>else <br>contextMenu.style.top = getRVContent().scrollTop evt.clientY - getRVContent().offsetTop; <br>return false; <br>} <br>function hiddenContextMenu() { <br>var object =event.srcElement; <br>contextMenu.style.visibility = "hidden"; = "menuitems") { <br>eval(object.clickcall); <br>} <br>} <br>function highLightMenu() { <br>var object =event.srcElement; <br>if (object.className; = = "メニュー項目") { <br>object.style.backgroundColor = "ハイライト"; <br>} <br>} <br>関数 lowLightMenu() { <br>var object =event.srcElement; <br>if (object.className == "menuitems") { <br>object.style.backgroundColor = ""; 🎜 >} <br>} <br>/*メニュー関連関数終了*/ <br>overWriteRightClick(); <br>document.body.onclick = hideContextMenu; <br><br> 以下にこのコードを紹介します。前の style と div は主にメニューの実際のスタイルを定義します。この属性は、このメニュー項目がクリックされたときに呼び出されます。関数を独自の関数に変更することもできます。ここでは単にalertと呼んでいます。 <br>getObjectName 関数に cv.id のオブジェクトがあります。以前に誰かがこの質問をしましたが、「cv.id」は何に使用されますか? ReportStudio で cognos レポートを実行することによって生成されるオブジェクトの名前は、URL リクエストによって生成されるオブジェクトの名前とは異なりますが、従うべき規則があります。たとえば、ReportStudio の実行によって生成されるレポート内の CognosViewer のオブジェクト名は oCVRS ですが、 の名前は oCVRS です。 URL リクエストを使用して生成された cognosViewer オブジェクトは oCVRS と呼ばれ、2 つの実行結果のソース ファイルを表示して比較できます。プレフィックス (oCV) は同じですが、その後ろの「RS」と「_NS_」が異なることがわかります。ページ内の多くのオブジェクトはこのルールを使用しており、cv.id はサフィックスとともに保存されます。このようにして、現在の実行モードでオブジェクト名をつなぎ合わせることができます。 <br>getRVContent 関数は、RVContent_NS_ または RVContentRS の ID を持つ DIV オブジェクトを取得します。RVContent には、ReportStudio を使用して定義されたレポートのコンテンツが表示されます。CognosViewer ツールバーとタイトル バーは含まれません。 <br>overWriteRightClick 関数は、cognos の右クリックによって呼び出される関数を独自定義の関数に変更します。 <br>右クリック メニューを無効にする disableRightClick 関数についてはすでに説明しました。 <br>関数displayContextMenu、hideContextMenu、highLightMenu、およびlowLightMenuはすべてメニュー操作に関連しており、実際の要件に応じて変更できます。 <br>レンダリングは次のとおりです: <br><img src="http://files.jb51.net/upload/2010-4/20100411194819963.jpg" border="0" alt="JS を使用して Cognos 右クリック menu_javascript スキルの実装コードを書き換える" > </div>