「コピー」、「貼り付け」などのコンテキストメニューコマンドで実装するのは簡単ではありません。前の質問でデモをthe answerから変更することにしました。 the new demoでは、ページに選択されたテキストがない場合にのみコンテキストメニューが表示されます。
最初の問題はjquery.contextmenu.js
の元のコードは、次のコードが含まれていることである。
$(this).bind('contextmenu', function(e) {
// Check if onContextMenu() defined
var bShowContext = (!!hash[index].onContextMenu) ? hash[index].onContextMenu(e) : true;
if (bShowContext) display(index, this, e, options);
return false;
});
のでcontextmenu
ハンドラは常にfalse
を返すと、標準のコンテキストメニューの作成を防止。私は(あなたが完全な変更されたコードhereをダウンロードすることができます)、次のコードを修正:
$(this).bind('contextmenu', function(e) {
// Check if onContextMenu() defined
var bShowContext = (!!hash[index].onContextMenu) ? hash[index].onContextMenu(e) : true;
currentTarget = e.target;
if (bShowContext) {
display(index, this, e, options);
return false;
}
});
createContexMenuFromNavigatorButtons
機能のコードがhereを説明し、私はgetSelectedText()
を使用するようにして唯一のコンテキストメニューを作成するために
onContextMenu: function (e) {
var rowId = $(e.target).closest("tr.jqgrow").attr("id"), p = grid[0].p, i,
lastSelId;
if (rowId && getSelectedText() === '') {
...
return true;
} else {
return false; // no contex menu
}
}
を修正しましたテキストが選択されていない場合その結果、あなたはテキストが選択されていない場合にのみ、カスタムコンテキストメニューが表示され、テキストの選択が存在する場合(Webブラウザに依存)標準のコンテキストメニューが表示されます。更新

を:I私のバグレポートjquery.contextmenu.js
をadditional informationと修正しました。この変更は、plugins
サブディレクトリに含まれるjquery.contextmenu.js
のメインコードにすぐに反映されることを願っています。
UPDATED 2:あなたはhereすべての修正がgithub上のjqGridのメインコードでとjqGrid 4.3に含まに既にある見ることができますどのように。 3を更新し
:あなたはすべてののための標準的なコンテキストメニューを持っているしたい場合は、あなただけonContextMenu
コールバックの内部コードを少し変更する必要があり<input type="text" ...>
、<input type="textarea" ...>
と<textarea ...>
要素を可能にしました。例えば
onContextMenu: function (e) {
var p = grid[0].p, i, lastSelId,
$target = $(e.target),
rowId = $target.closest("tr.jqgrow").attr("id"),
isInput = $target.is(':text:enabled') ||
$target.is('input[type=textarea]:enabled') ||
$target.is('textarea:enabled');
if (rowId && !isInput && getSelectedText() === '') {
...
はインライン編集をダブルクリックによってアクティブにされる1以上demoを参照してください。
ありがとうございます。テキストが選択されていない場合は、すべてのコマンドを貼り付けて選択することができます。あなたが作成したカスタムメニューに標準的なテキストボックスのコンテキストメニューを追加するには?この場合、両方のコマンドを使用できます。 – Andrus
@Andrus:私はそれが不可能だと思います。 – Oleg
http://stackoverflow.com/questions/400212/how-to-copy-to-clipboard-in-javascriptなどのソリューションを使用することは可能でしょうか? – Andrus