Google Chromeで右クリックオプションを追加できますか?


18

Google Chromeでは、テキストを選択して右クリックすると、次のオプションが表示されます:

「Googleで[テキスト]を検索」

これは非常に便利ですが、独自のオプションを追加できるようにもしたいと思います。

たとえば、選択したテキストを使用してamazon.co.ukを検索したり、選択したテキスト(住所や郵便番号など)を使用してGoogleマップに直接アクセスしたりする機能を追加したいと思います。

PhraseExpressを使用してこの機能を並べ替えることができますが、Chromeから直接行うことができます-可能ですか?

回答:


12

コンテキストメニューAPIを使用して、選択したテキストの右クリックメニューにオプションを追加し、独自のカスタム検索を定義できる拡張機能を次に示します。

http://maps.google.com/maps?q=TESTSEARCHGoogleマップとhttp://www.amazon.co.uk/s/?url=search-alias%3Daps&field-keywords=TESTSEARCHAmazon.co.ukをお試しください。


はい、私はこれがまさに私が望むことをすると思います-ありがとう。ところで、選択した単語またはフレーズを使用するには、文字列にTESTSEARCHという用語を追加する必要があります。
-andygrunt

それを反映するように回答を編集しました。
gdejohn

15

開発者向けおよびベータ版チャンネルで利用可能な最近のコンテキストメニューAPIがあります。これを使用して、右クリックメニューにオプションを追加する独自の拡張機能を作成できます。これは、Google Chromeバージョン6以降でのみ機能することに注意してください。

公式の拡張機能ギャラリーの例を次に示します。

  • Imgur Uploader(右クリックで画像をImgurにアップロード)

また、そのコードに基づいて、独自の3つを作成しました。

リンクを右クリックして[名前を付けてリンクを保存... ]をクリックし、コンピューター上のファイルを見つけて、Google Chromeウィンドウにドラッグすることで、自己責任でインストールできます。

ここでAPIについて読む:

独自に記述するには、manifest.jsonファイルが必要です。このファイルは次のようになります。

{
   "background_page": "background.html",
   "description": "Add a context menu item to search for selected text at Google Maps.",
   "icons": {
      "16": "icon16.png",
      "48": "icon48.png"
   },
   "minimum_chrome_version": "6",
   "name": "Google Maps Right Click",
   "permissions": [ "contextMenus", "tabs" ],
   "version": "1.0"
}

background.htmlファイルも必要です。このファイルは次のようになります。

<script>

function searchgooglemaps(info)
{
 var searchstring = info.selectionText;
 chrome.tabs.create({url: "http://maps.google.com/maps?q=" + searchstring})
}

chrome.contextMenus.create({title: "Search Google Maps", contexts:["selection"], onclick: searchgooglemaps});

</script>

最後に、コンテキストメニュー用に少なくとも16×16ピクセルのアイコンと、拡張機能管理ページ用に48×48ピクセルのアイコンが必要です。また、インストール中に表示される128×128ピクセルのアイコンと、公式ギャラリーに拡張機能を送信する場合は32×32ピクセルのアイコンを指定することもできます。すべてのアイコンをmanifest.jsonにリストする必要があります。ファイルの種類と名前が一致していることを確認してください。

アイコン、background.html、manifest.jsonをフォルダーにまとめて、拡張機能管理ページのにアクセスし、開発者モードをchrome://extensions確認します(これを表示するには、ベータチャンネル以上を実行する必要があると思います)。 [ パックの拡張機能 ]をクリックし、[ 拡張機能のルートディレクトリ ]の横にある[ 参照... ]をクリックして、作成したフォルダーを見つけて選択し、[ OK ]をクリックし、結果の.crxファイルをGoogle Chromeウィンドウにドラッグします。


このCharlatanをありがとう。新しいAPIについて聞いたことがありますが、最終的な回答としてここに投稿する前に、私の希望を満たす拡張機能が見つかるまで待っていました。私よりもはるかに優れた人々がいるので、自分で作ってみようとは非常に疑っています。おそらく、「Context Search」拡張機能の作成者は、新しいAPIを利用するために拡張機能を書き換えます。
andygrunt

どういたしまして。上記の例を他のサイトに適用するのは本当に簡単です。URLを変更するだけで機能します。他のすべてはただそれをきれいにしています。回答のコードを編集して、Googleマップを検索できるようにしました。変更する必要があるのは5つだけです。
gdejohn

Chromeの拡張機能にはいくつかの変更があります。つまり、manifest.jsonバージョン2になり、多くの変更が加えられたことに注意してください。
ジェイソン

Dropboxへのリンクが壊れています。更新しますか?
ボブホペス

@BobHopezこれらの拡張機能は、過去9年間にChromeに加えられたすべての変更に対応しなくなりました。
gdejohn

5

右クリックメニューに何も追加しないという例外を除き、必要なことを実行するコンテキスト検索拡張機能があります。代わりに、ページ上のテキストチャンクを選択すると、横に青い三角形の付いた小さなボタンが表示され、クリックするとメニューがポップアップ表示されます。 代替テキスト


優秀な。これは私が望むものの99%を行います。あなたが言うように、それは右クリックメニューにオプションを追加しませんが、もっと重要なことには、それはどこでも動作しません。例えば、Google検索ボックスに何かを書いてそれを選択してボタンが表示されません。右クリックメニューにオプションを追加することは可能かどうかはまだ聞きたいのですが、これでうまくいくでしょう。ありがとう。
-andygrunt

私の知る限り、拡張機能はDOMの調整とポップアップの表示しかできないため、Chromeネイティブメニュー(右上の[オプション]メニューなど)にオプションを追加する方法はありません。おそらくそれは、より良いクロスプラットフォーム互換性を達成するための意図的な選択でした。
ホワイトクォーク

1
これが、私がFirefoxにこだわる理由の1つです。
CGA

@CGA:Firefoxは素晴らしく、長年使用していましたが、Atom 2x1600ネットブックではあまりにもゆるいです。
ホワイトクォーク

そこにあなたに反対することはできません。
CGA

1

カスタム右クリックメニューと呼ばれる拡張機能を楽しんでい ます。完全に設定可能な右クリックメニュー項目を作成でき、他のブラウザーでも動作します(Opera:Chrome拡張機能のインストール、Firefox:Chrome Store Foxified)。

  • Chromeストアから「カスタム右クリックメニュー」をインストールします
  • カスタム右クリックメニューのオプションを開く
  • [CRMの編集]セクションで、[選択]を選択します
  • 一般的に使用される検索エンジンまでスクロールし、追加します
  • [CRMの編集]セクションにその検索エンジンを追加します。
  • 編集するには、ギアではなくクリックします。
  • 名前を「Search amazon.co.uk」などに変更します
  • コードを

    var query;
    var url = "https://www.amazon.co.uk/s/ref=nb_sb_noss?url=search-alias%3Daps&field-keywords=%s";
    if (crmAPI.getSelection()) {
        query = crmAPI.getSelection();
    } else {
        query = window.prompt('Please enter a search query.');
    }
    if (query) {
        window.open(url.replace(/%s/g,query), '_blank');
    }
    
  • スクリプトタイプの別のメニュー項目を作成し、「Googleマップ」などと呼び、同じ方法でコーディングします。

    var query;
    var url = "https://www.google.com/maps/search/%s";
    if (crmAPI.getSelection()) {
        query = crmAPI.getSelection();
    } else {
        query = window.prompt('Please enter a search query.');
    }
    if (query) {
        window.open(url.replace(/%s/g,query), '_blank');
    }
    

0

「コンテキストメニュー検索」と呼ばれる拡張機能があります。URLを追加し、テキストを選択してURLの1つをクリックすると、クリックしたURLにそのテキストを渡します。

たとえば、YouTubeの検索URLは次のとおりです。

http://www.youtube.com/results?search_query=TESTSEARCH

ここで、TESTSEARCHは検索するテキストです。拡張機能でこの行を追加すると、TESTSEARCHを押すと、選択したテキストに自動的に置き換えられます。もちろん、各URLにラベルを追加できます。

拡張機能へのリンクは次のとおりです。

https://chrome.google.com/webstore/detail/ocpcmghnefmdhljkoiapafejjohldoga


0

こんにちは。主な質問に答えたので、何か貢献したいと思います。

これは、Googleでの逆画像検索に似た単純に変更されたスクリプトですが、imglink.jpgをJeffreyのExif Viewerにリダイレクトして、画像のEXIFを分析します。

gdejohnに感謝します

簡単に、メモ帳を使用してこの2つのファイルを作成し、16x16、48x48、128x128のアイコンを追加(または行を削除)し、chrome:// extensions / tick開発者モードに移動して、ファイルを含むフォルダーを追加します。

ファイル名:manifest.json

{
"manifest_version": 2,
    "background" : { "scripts": ["background.js"] },
    "description": "Agrega un menu contextual para ver el EXIF de imagenes. Jeffrey's Exif Viewer",
    "icons": {
            "16": "icon16.png",
            "48": "icon48.png",
            "128": "icon128.png"
        },
   "minimum_chrome_version": "6",
   "name": "Regex Exif Viewer Right Click",
   "permissions": [ "contextMenus", "tabs", "http://*/*",
 "https://*/*" ],
   "version": "1.0"
}

ファイル名:background.js

/**
 * Returns a handler which will open a new tab when activated.
 */


function getClickHandler() {
  return function(info, tab) {

    // The srcUrl property is only available for image elements.

var url = "http://regex.info/exif.cgi?imgurl=" + info.srcUrl;

    // Create a new tabto the info page.

chrome.tabs.create({ url: url, });
  };
};



/**
 * Create a context menu which will only show up for images.
 */


chrome.contextMenus.create({
  "title" : "Get image info via Jeffrey's Exif Viewer",
  "type" : "normal",
  "contexts" : ["image"],
  "onclick" : getClickHandler()
});
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.