基本的に私のウィンドウ(アイコンをクリックすると)が開き、タブのURLが表示され、その横に「保存」と表示され、localStorageに保存され、保存された場所の下に表示されますリンクエリア。
このような:
ブックマークのようなもの:)
基本的に私のウィンドウ(アイコンをクリックすると)が開き、タブのURLが表示され、その横に「保存」と表示され、localStorageに保存され、保存された場所の下に表示されますリンクエリア。
このような:
ブックマークのようなもの:)
そのようなことをしたい場合は、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 ページでそれらをレンダリングできます。
幸運を!
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()を参照してください。
お役に立てれば!
現在の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"
],
...
}