32

基本的に私のウィンドウ(アイコンをクリックすると)が開き、タブのURLが表示され、その横に「保存」と表示され、localStorageに保存され、保存された場所の下に表示されますリンクエリア。

このような:

代替テキスト

ブックマークのようなもの:)

4

3 に答える 3

51

そのようなことをしたい場合は、Chrome 拡張機能 API を使用して簡単に行うことができます。探すべき領域は次のとおりです。

最初のステップは、popup.html ファイルを作成することです。このファイルは一時的なものであることを覚えておいてください。つまり、ブラウザのアクションをクリックしたときにのみ存続し、終了 (閉じる) すると終了します。私が言おうとしているのは、大量の計算があり、それをバックグラウンドで実行し、ポップアップが閉じていても実行したい場合は、すべてをバックグラウンド ページに移動することです。また、ポップアップでは、chrome.extension.getBackgroundPage() を使用して背景ページに簡単にアクセスできます。

popup.html 内で、現在のタブの URL を取得する必要があります。そのために、Tab API には、選択したタブのTab オブジェクトを取得できる「 getSelected 」関数があります。

だから、このようなもの:

popup.html

<html>
<body>
<p id="currentLink">Loading ...</p>
<hr />
<ul id="savedLinks"></ul>
<script type="text/javascript" src="popup.js"></script>
</body>
</html>

popup.js

chrome.tabs.getSelected(null, function(tab) {
    document.getElementById('currentLink').innerHTML = tab.url;
});

JavaScript コードを HTML ファイルに配置できない理由は、JavaScript 攻撃からユーザーを保護するための Chrome の制限です。

インライン スクリプトとイベント ハンドラは許可されていません

これで、ブラウザ アクションとして現在のページのポップアップに URL を表示できるようになりました。次のステップは、localStorage や Webdatabase などの単純な HTML5 機能を使用することです (私の意見では、その方が優れていると思います)。保存したページを保存するには、currentLink で行ったのと同じように、savedLinks ページでそれらをレンダリングできます。

幸運を!

于 2010-05-09T14:49:11.530 に答える
14

APIが変更されたため、この回答を更新したかったのです。

このchrome.tabs.getSelected()メソッドは非推奨になりました。現在のタブの URL を取得する推奨される方法は、次を使用することchrome.tabs.query()です。

chrome.tabs.query({'active': true}, function (tabs) {
    var url = tabs[0].url;
});

chrome.tabsこれには、拡張マニフェストで APIへのアクセスを要求する必要があります。

"permissions": [ ...
   "tabs"
]

非推奨の詳細については、chrome.tabs.getSelected()を参照してください。

お役に立てれば!

于 2013-01-10T05:16:10.210 に答える
10

現在のURLを取得するには、現在のタブを取得してから、すべてのパラメータを抽出する必要があります。

現在のタブの使用を取得するには、chrome.tabs.getSelected()。次に、タブオブジェクトからパラメータをフェッチするには、tabsapiを参照します

コードスニペットは次のようになります。

chrome.tabs.getSelected(null, function(tab) {
  //properties of tab object
  tabId = tab.id;
  tabUrl = tab.url;

  //rest of the save functionality.
});

tabs APIを使用するには、拡張機能のマニフェストで「tabs」権限を宣言する必要もあります。例えば

{
  "name": "My extension",
  ...
  "permissions": [
    "tabs"
  ],
  ...
}
于 2010-05-09T14:34:42.763 に答える