/ / Webページのコンテキストメニューのネイティブスタイルを維持する - javascript、html、右クリック

ウェブページのコンテキストメニューのネイティブスタイルを維持する - javascript、html、右クリック

私は誰もがコンテキストメニューが嫌いだと知っている私はウェブページのコンテキストメニューを変更することに対処するjavascriptプラグインを探してみましたが、彼らは非常に介入していることがわかりました。 (つまり、コンテキストメニューには、開発者が選択する項目のみが含まれています)。メニューのネイティブスタイルを維持しながら、ユーザーの通常のアイテムを維持しながら、コンテキストメニューにアイテムを追加する方法はありますか?同じプラグインでは、開発者は新しいスタイルを定義する必要がありますメニューのために私は車輪を再発明することのポイントを見ない。

私のクライアントは、ユーザーが右クリックしたときにサイトに余分な機能を追加しようとしているからです。

回答:

回答№1は1
  • コンテキストメニューは通常の方法で変更することはできませんjavascript + DOM。通常はコンテキストメニューのように見え、動作するいくつかの動的なHTMLに置き換えられます。これは、スタイリングが異なるように見える理由と、組み込みのカスタムメニューとカスタムコンテキストメニューを組み合わせることができない理由です。「コンテキストメニュー」は、実際にはコンテキストメニューではありません。

  • コンテキストメニューが無効の場合は、イベントがキャンセルされていますが、それはブラウザに依存します。ほとんどのブラウザはコンテキストメニューを隠すことを禁止するオプションを提供しています;もしそれが有効になっていれば、イベントがキャンセルされてもメニューが表示されます。この結果、2つの「コンテキストメニュー」が表示され、実際のコンテキストメニューと偽装されたjavascriptが表示されます。

  • ユーザーのシステムアピアランスに基づいてWebページをスタイルするには、CSS2で定義されたシステムカラーを使用します( http://www.iangraham.org/books/xhtml1/appd/update-23feb2000.html )および/またはCSS3の外観プロパティ( http://www.w3.org/TR/2004/CR-css3-ui-20040511/#system

編集:に応じて "a client of mine wants to add extra functionality to the site when the user right clicks" - クライアントにアドバイスすることもできますサイトがウェブアプリケーション(例えばgoogle docsのような)であり、ユーザがコンテクストメニューが普通ではないことを合理的に期待している場合にのみこれを行うべきである。また、コンテキストメニューから行うことができるすべてを行う非表示の方法があることを確認する必要があります。