- PR -

oncontextmenuイベントを全てのページに

投稿者投稿内容
ラーミア
会議室デビュー日: 2004/02/23
投稿数: 14
投稿日時: 2004-06-04 11:10
ASP.NETで開発を行っておりますが、全てのページにおいて
右クリック時のメニュー表示をしたくありません。

BODYタグにoncontextmenu="return false"を入れれば良いのですが、
ページ数(ファイル数)が多いので、一括して実現する方法を探しています。

何か情報をお持ちの型、よろしくお願いします。
burton999
ぬし
会議室デビュー日: 2003/10/06
投稿数: 898
お住まい・勤務地: 東京
投稿日時: 2004-06-04 12:48
コンテキストメニュー以外にもF5キーなど無効にしたいものは
ベースクラスを定義して、全てのページはそのベースを継承して作成したらどうでしょうか。
一郎
ぬし
会議室デビュー日: 2002/10/11
投稿数: 1081
投稿日時: 2004-06-04 12:57
ベースクラスといっても、継承できるのはaspx.vbファイルの方に書かれているコンパイルされる部分だけですよね。
そのコードの中から<body>タグっていじれましたっけ?
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-06-04 13:18
思いつき:
 Javascriptを別ファイルに記述して、その中で、body.oncontextmenu=で、何もしない関数を設定する。各ファイルにこのJavascriptファイルを読む記述は必要。
burton999
ぬし
会議室デビュー日: 2003/10/06
投稿数: 898
お住まい・勤務地: 東京
投稿日時: 2004-06-04 13:54
説明が不足していました。
bodyタグにはアクセスできないので
Pageロード時に右クリックを無効にする
クライアントスクリプトをRegisterClientScriptBlockで登録します。
ラーミア
会議室デビュー日: 2004/02/23
投稿数: 14
投稿日時: 2004-06-04 19:00
クライアントスクリプトをRegisterClientScriptBlockで
trueかfalseを返す関数を動的に生成するってことでしょうか?
でもBODYタグに「oncontextmenu="作成する関数名"」ってのは入れておかないと
ダメですよね。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-06-04 19:33
Page_Loadイベントハンドラに、以下を記入。

this.Page.RegisterStartupScript("body", "<script>document.body.oncontextmenu=new Function('return false;');</script>");


 これを入れたページをベースにして、継承して使えばOK!ってことですね?>burton999さん

[ メッセージ編集済み 編集者: Jitta 編集日時 2004-06-04 19:35 ]
burton999
ぬし
会議室デビュー日: 2003/10/06
投稿数: 898
お住まい・勤務地: 東京
投稿日時: 2004-06-07 10:09
VBScriptだと
BODYタグにoncontextmenuと書く必要がありません。

Private Sub document_oncontextmenu()
window.event.returnValue = False
End Sub

スキルアップ/キャリアアップ(JOB@IT)