私は自分のASP.NETアプリケーションにセルoncontextmenu
の機能string.Format("OnCellContextMenu({0}, '{1}', true, true)", e.VisibleIndex, e.DataColumn.FieldName)
を添付します。FirefoxとIE9でのJavascriptイベント
私のJSでは、以下の機能を定義しています。
今function OnCellContextMenu(visibleIndex, fieldName, hasNote, hasValue) {
currentVisibleIndex = visibleIndex;
currentFieldName = fieldName;
if (fieldName == "Name" || fieldName == "TOTAL") {
EnableMenuItem('AddNote', false);
EnableMenuItem('EditNote', false);
EnableMenuItem('RemoveNote', false);
}
else {
EnableMenuItem('AddNote', !hasNote && hasValue);
EnableMenuItem('EditNote', hasNote);
EnableMenuItem('RemoveNote', hasNote);
}
window.event.returnValue = false;
gvPrevisions.SetFocusedRowIndex(visibleIndex);
GridMenu.ShowAtPos(ASPxClientUtils.GetEventX(event), ASPxClientUtils.GetEventY(event));
}
は、IE上でproperlly動作しますが、Firefoxのwindow.event.returnValue = false;
上では実行されません。私はFirefoxがこの戻り値をどのように扱うのかを知りたかったので、私はe.preventDefault();
というwindow.eventのinsdeadを呼び出すべきだと思った。問題は私の関数ではe
は未定義です。
FFとIEの両方で動作するソリューションを見つけるのを手伝ってもらえますか?
おかげ
何が起こると思いますか? – Jivings
右クリックして自分自身を表示しているときにブラウザメニューを表示しないようにします。 – MaiOM
これを使用してください。 if(window.event.preventDefault){window.event.preventDefault(); } – Ramesh