私はすべてのブラウザ用の拡張機能を開発しています。セッションにタブ固有の値を保存するにはどうすればよいですか? FirefoxでNSISessionStoreオブジェクトを使ってこの問題を解決しました。 SafariとGoogle Chromeでは、私はSessionStorageを使いました。このオブジェクトは、特定のドメインの特定のタブの値を格納します。特定のタブの値を格納する方法の解決策が必要です。ChromeとSafari拡張機能の特定のタブの値を保存するにはどうすればよいですか?
0
A
答えて
0
タブの生涯を通してデータを管理する方法を尋ねる場合は、作成時にそのタブのオブジェクトを作成し、閉じたときに削除するだけです。
// Create data store
var tabDataStore = {};
// Create listeners
chrome.tabs.onCreated.addListener(function (tab) {
tabDataStore['tab_' + tab.id] = {
urls: []
};
});
chrome.tabs.onRemoved.addListener(function (tabId) {
delete tabDataStore['tab_' + tabId];
});
// Save something against that tab's data
function saveUrl(tab) {
tabDataStore['tab_' + tab.id].urls.push(tab.url);
}
// Load something from tab's data
function loadOriginalUrl(tab) {
tabDataStore['tab_' + tab.id].urls[0];
}
ただし、これはすべて前提であり、まったく異なるものが必要な場合があります。また、いつ、何を正確に保存するかによって異なります。
タブの詳細については、official documentationをご覧ください。
何かを保持したい場合は、localStorageを使用できます。
+0
このソリューションはChrome固有のものです。 – Brian
0
それを行うための簡単な方法は、ではないが、それは厄介になりますように理想的なは
タブのURLを使用すると、ハッシュに値を格納することができhttp://whatever.com/ だったと言うURLハッシュに値を格納することです以下のようなので、 http://whatever.com/#value1=12&value2=10&value3=15212
ウェブサイトは、そのような「ページ内の」アンカー、またはajaxyタイプのもの
0
サファリ回答
としてanyhtingのハッシュオブジェクトを使用している場合にも問題があるだろう注入されたスクリプト
// global page
safari.application.addEventListener("message", function(event){
switch(event.name){
case "saveData":
event.target.page.tabData = { data: myData }
break;
case "getData":
event.target.page.dispatchMessage("tabData", myData);
break;
}
}, false);
からのメッセージ上のインスタンスのための..だからタブに直接保存し、あなたのグローバルページで - それは実際に何を理解することは難しいよう
// injected page
// first save data
safari.self.tab.dispatchMessage("saveData", {firstname:"mike", age: 25});
// setup listner to recevie data
safari.self.addEventListener("message", function(event){
switch(event.name){
case "tabData":
// get data for page
console.debug(event.message);
// { firstname: "mike", age: 25 }
break;
}
}, false);
// send message to trigger response
safari.self.tab.dispatchMessage("getData", {});
関連する問題
- 1. Safari拡張機能で、ドメインではなく特定のタブの値を保存するにはどうすればよいですか?
- 2. Google Chrome拡張機能の設定を保存するにはどうすればよいですか?
- 3. Chrome拡張機能:特定のウェブサイトのスタイルを変更するにはどうすればよいですか?
- 4. Safari拡張機能で特定のタブにメッセージを送信
- 5. Google Chrome拡張機能のタブの変更を確認するにはどうすればよいですか?
- 6. Safari拡張機能 - 特定のタブにのみバッジ番号を設定するにはどうすればよいですか?
- 7. Safari環境設定のSafari拡張機能の拡張機能タブに表示されない
- 8. Chrome拡張機能:新しいタブでリンクを開くにはどうすればよいですか?
- 9. Chrome拡張機能、フォームの保存エラー
- 10. Chrome拡張機能カスタムオブジェクトタイプストリップの保存プロトタイプメソッド
- 11. Chrome OSのダウンロードフォルダにChrome拡張機能をインストールするにはどうすればよいですか?
- 12. Chromeタブの拡張機能:getCurrentとgetSelected?
- 13. Chrome拡張機能でサイドバーを指定するにはどうすればよいですか?
- 14. 新しいタブでChrome拡張機能
- 15. Xamarin.iOSでiOSアプリの拡張機能クラッシュを特定するにはどうすればよいですか?
- 16. 通信b/w Chrome拡張機能のようなSafari拡張機能のPost/DispatchメッセージによるJavaScriptファイル
- 17. Chrome拡張機能 - 拡張機能のクリック、新しいタブとリダイレクト
- 18. オープン]タブをクリック - Chromeの拡張機能
- 19. Chrome拡張機能でFacebookのホットキーを無効にするにはどうすればよいですか?
- 20. 拡張機能で設定した操作をChrome拡張機能で保存できますか?
- 21. Chrome拡張機能 - tabIdを使用して特定のタブを更新する
- 22. Chrome拡張機能のコンテンツスクリプトから変数を取得するにはどうすればよいですか?
- 23. Chrome拡張機能からノックアウトビューモデルの変更をトリガーするにはどうすればよいですか?
- 24. Chromium/Chrome拡張機能のインラインインストールをローカルでテストするにはどうすればよいですか?
- 25. Google Chrome拡張機能でウェブクレジットの結果を取得するにはどうすればよいですか?
- 26. Chrome拡張機能でフルスクリーンのHTMLポップアップを作成するにはどうすればよいですか?
- 27. Chrome拡張機能の作成中にJavascriptエラーをデバッグするにはどうすればよいですか?
- 28. Chrome拡張機能のディレクトリにファイルをダウンロードするにはどうすればよいですか?
- 29. 複数のChrome拡張機能を同時に更新するにはどうすればよいですか?
- 30. Safari拡張機能:バーにメニューとサブメニューを追加するにはどうすればいいですか?
あなたがこれを言い換えるてくださいすることができ知りたい。 – Alasdair