5

Chrome ブラウザーの拡張機能を開発しています。PDF ドキュメント用の特定のコンテキストメニューを追加したいと考えています。また、タイプ「ページ」および「画像」の指定されたコンテキストメニューに追加します。タイプを「すべて」に設定すると、コンテキストメニューがありますが、pdf ドキュメントには指定されません。

PDFドキュメントに指定されたコンテキストメニューを追加することは可能ですか、それともタイプ「all」を使用して、clickEventHandlerでスイッチケースを作成する必要がありますか?!

詳しくは http://developer.chrome.com/extensions/contextMenus.htmlをご覧ください。

これらは「ファイル」タイプです。

contexts ( optional array of enum of "all", "page", "frame", "selection", "link", "editable", "image", "video", "audio", or "launcher" )
4

3 に答える 3

5

タブに PDF が表示されている場合にのみ、コンテキスト メニューを追加する必要があると思いますよね。最初は、PDF ファイルへのリンクにコンテキスト メニューを追加したいと思っていたのでお尋ねしますが、実際に可能です*。(おそらくご存知のとおり)

これを直接行う方法は見つかりませんでしたが、別の方法としてchrome.tabs.onActivated、現在の URL が PDF ファイルと一致するかどうかに基づいて、コンテキスト メニューをリッスンして追加または削除することができます。欠点の 1 つは、許可を求めることを意味することでtabsあり、ユーザーにとっては恐ろしく見えるかもしれません。(「この拡張機能は、タブとブラウジング アクティビティにアクセスできます」など)

*好奇心旺盛な人のために、次のようにします:

chrome.contextMenus.create({
    title: "Hello world",
    contexts: ["link"],
    targetUrlPatterns: ["*://*/*.pdf"]
});

(もちろん、興味のある他のオプションを追加します)

于 2013-08-15T05:49:32.110 に答える
3

この関数は、pdf ドキュメントに対して機能します。

chrome.tabs.onActivated.addListener(function (info) {
    var tab = chrome.tabs.get(info.tabId, function (tab) {
        if (tab.url.indexOf(".pdf") > 0) {
            chrome.contextMenus.create({
                "id": "1",
                title: "Just for PDF Documents",
                contexts: ["all"],
                onclick: function (e) {
                }
            });
        } else {
            chrome.contextMenus.remove("1", null);
        }
    });
});

多分ライン

if (tab.url.indexOf(".pdf") > 0) {

式で編集する必要があります!

于 2013-08-15T09:45:27.263 に答える