2011-08-30 8 views
8

基本的には、左クリック自体でコンテキストメニューを開きたいとします。とにかくjQueryを使ってこれを行うには?jQueryを使用していくつかのhtml要素をクリックした場合、どのように右クリックをトリガできますか?

+0

可能な複製:http://stackoverflow.com/questions/6250447/trigger-right-click –

+0

@James Allardice: - その回答は私の場合は機能しません。私はすでにそれを試みただけで私はこの質問を投稿しました。 –

+0

私のために働く(少なくともChromeで):http://jsfiddle.net/interdream/EvZSA/3/ –

答えて

6

できません。 JavaScriptにはブラウザへのアクセス権がありません。その代わりに、独自のカスタムコンテキストメニューを作成し、通常のコンテキストメニュー(Back、forwardなど)から必要な動作の選択肢を与えることができます。もちろん、それらのうちのいくつかは(コピー/ペーストのように)制限されているかもしれません。

http://labs.abeautifulsite.net/projects/js/jquery/contextMenu/demo/

1

あなたは右クリックで実行したいものは何でもイベントを右クリックし、トリガのためのイベントを記録することができます。

1

あなたは右クリックを誘発することはできませんが、.trigger()

Shiftキー+ F10を使用してキープレスは、Windows上でコンテキストメニューをトリガすべきトリガすることができ、何かのような...

function openContextMenu() { 
    jQuery.event.trigger({ type: 'keypress', which: 121, shiftKey: true }); 
} 

もありますkeycode 93ことI think mightコンテキストメニューキー(CTRL前に右のキーのキーボード104+上):

function openContextMenu() { 
    jQuery.event.trigger({ type: 'keypress', which: 93 }); 
} 

更新

実際には、これらのイベントをシミュレートするだけです - そのイベントのJSイベントですが、実際のキーは送信されません。

あなたはActiveXオブジェクトでこれを行うことができます解決策はイントラネットなどのためのだけは本当に実用的であるように、そのコンポーネントは、スクリプトを実行しても安全ではないとしてマークされ、IEのみですが

// ActiveX object 
var shell = new ActiveXObject("WScript.Shell"); 

// Send SHIFT+F10 
shell.SendKeys("+{F10}"); 

+0

私はこれらのソリューションのいずれかを動作させることができませんでした。あなたはそれらを試しましたか? –

+0

@Jason Dean - いいえ、彼らは本当に出発点ですが、貢献する価値があると思いました。 – Keith

関連する問題