5

私は Google Chrome 拡張機能、具体的には軽量の EPUB リーダーを作成中です。これは、Chrome に組み込まれている PDF リーダーと同じくらい滑らかになることを目標としています。

私が理解しようとしているのは、通常は epub ファイルをディスクに保存するように強制するリンクをクリックしたときに、何らかの方法で拡張機能を自動的にトリガーできるかどうかです。

完璧な世界では、epub ファイルへのすべてのリンクが を指しfile.epub、コンテンツ スクリプトを使用してそれを拡張子に向けることができますが、残念ながら多くの場合、そうではありません。だから私が考えているのは、少なくともHTTP getリクエストがヘッダーを返した後にトリガーされ、achrome.webRequestまたは何かを介してMIMEタイプからトリガーされる必要があるということです。

提供されているファイルの MIME タイプから Google Chrome 拡張機能を呼び出すことはできますか?

4

1 に答える 1

0

すべての機能に対してブラウザー アクションがあると仮定すると、chrome.webRequest.onHeadersReceivedchrome.browserAction.enable()およびchrome.browserAction.disable( ) で拡張機能を検出して有効化/無効化できます。

疑似コード

マニフェスト.json

{
  "name": "Detect Mime type",
  "version": "1.0",
  "description": "Detecting Mime type and enabling browser action",
  "permissions": ["webRequest", "webRequestBlocking",
                  "<all_urls>"],
  "background": {
    "scripts": ["background.js"]
  },
  "browser_action":{
    "default_popup":"popup.html", // Use you related code here
    "default_icon":"icon.jpg"
  },    
  "manifest_version": 2
}

background.js

chrome.webRequest.onHeadersReceived.addListener(function (object){
    // Do your code for related header(s)
    //Invoke chrome.browserAction.enable(integer tabId) or chrome.browserAction.disable(integer tabId)
},{urls: ["<all_urls>"]});
chrome.tabs.query({"status":"complete"}, function(tabs){
     //Disable all browser actions using chrome.browserAction.disable(integer tabId)
});

さらに情報が必要な場合はお知らせください。

于 2012-12-08T14:37:24.940 に答える