別のドメインのローカルストレージに書き込むにはどうすればよいですか。アイデアは、ローカル記憶域に何かを書き込むためにクロム拡張子が必要であり、ユーザーが関連するWebサイトを訪問するときに、サイトサイトがローカルストレージの内容を読み取ることができるということです。私は、サーバーに保存することなく、ユーザーの個人データを同期しようとしています。Chrome拡張機能 - 別のドメインのローカルストレージに書き込む
5
A
答えて
2
私はこれを行うための唯一の解決策は、クロスドメインの制限のためにスクリプト注入によるものだと思います。
var s = document.createElement('script');
s.src = chrome.extension.getURL("script.js");
s.onload = function() {
this.parentNode.removeChild(this);
};
(document.head||document.documentElement).appendChild(s);
他のサイトのlocalStorageにアクセスして、あなたの内線にファイルscript.js
を追加し、あなたのマニフェストファイルに「web_accessible_resources」にscript.js
を追加する必要があります。
スクリプトは完全に読み込まれた後に自動的に削除されるので、実行するコードが自己実行可能機能に含まれていることを確認してください。
6
Content scriptsは、ページのlocalStorageに直接アクセスします。
特定のドメインの値を保存する場合は、ウィンドウまたはフレームを開き、ウィンドウ/ページのローカルストレージに書き込みます。
は、ページをアクティブにするために、あなたの好みのオプションを選択してください:
chrome.tabs.create
は、おそらくchrome.tabs.query
を使用した非アクティブウィンドウで、非アクティブなタブを作成します。- 実験的な
offscreenTabs
API(実験的なので、本番環境では使用できません)。私が投稿したexamplesのいくつかを見てください。 - IFrameを作成し、現在のページに挿入します。
window.open
(推奨しません...)
あなたは、ページを開く軽量のあるものを選択することを決定しました。
/robots.txt
は通常、良い選択です:ほとんどのサイトに存在します。とはプレーンテキストファイルです。ページのコンテンツスクリプトを有効にします。マニフェストファイルを使用して、messaging APIを使用するか、プログラムでコンテンツスクリプト(
chrome.tabs.executeScript
)を挿入するchrome.tabs.create
メソッドにコールバックを追加することができます。
ここは簡単な例です。 chrome.tabs.executeScript
を使用しているため、tabs
APIが必要です。さらに、アクセスする元をアクセス権リストに追加する必要があります。
chrome.tabs.create({
active: false,
url: 'http://stackoveflow.com/robots.txt'
}, function(tab) {
chrome.tabs.executeScript(tab.id, {
code: 'localStorage.setItem("key", "value");'
}, function() {
chrome.tabs.remove(tab.id);
});
});
関連する問題
- 1. Chrome拡張機能をファイルシステムに書き込む
- 2. Chrome拡張機能Googleスプレッドシートへの書き込み
- 3. Chrome拡張機能のローカルストレージの表示/確認方法は?
- 4. Google Chrome拡張機能にリモートライブラリ(API 4.5 Mapy.cz)を組み込む
- 5. Chrome拡張機能
- 6. Chrome拡張機能、拡張機能を一意に識別する方法
- 7. はChromeの拡張機能
- 8. Chromeの拡張機能「バージョンエラー」
- 9. はChromeの拡張機能
- 10. Chrome拡張機能にリダイレクト
- 11. Google Chrome拡張機能のリンク機能
- 12. Chrome拡張機能コピー&ペースト
- 13. Chrome拡張機能 - 設定ページで拡張機能の画像
- 14. Chrome拡張機能:タブリスナーonSelectionChanged
- 15. Google Chrome拡張機能ADS
- 16. Chrome拡張機能:bitcoin wallet
- 17. Chrome拡張機能:ログインオプションページ
- 18. Chrome拡張機能changeInfo.status
- 19. Google Chrome拡張機能API
- 20. ファイルダウンロードリスナー - Chrome拡張機能?
- 21. Chrome拡張機能/ウェブアプリセッションコントロール
- 22. Google Chromeの拡張機能のタブごとのローカルストレージ変数のスコープ
- 23. jQuery付きChrome拡張機能
- 24. Chrome拡張機能の「不明なエラー」
- 25. ドメインを確認するGoogle Chrome拡張機能
- 26. Chrome拡張機能のログインのベストプラクティス
- 27. Chrome拡張機能の複数のJSファイル - 読み込む方法
- 28. Chrome拡張機能のSWFオブジェクト - API Unavaiable
- 29. Google AnalyticsとFacebook SDKをChrome拡張機能に読み込む方法は?
- 30. ページのすべての要素を読み込む前にChrome拡張機能を読み込む
確かにこれは実行可能なソリューションのようです。今私が持っている問題は、私はバックグラウンドページからそれを行う必要があります。非アクティブなタブを作成すると、ユーザーに何かが表示されます。オフスクリーンタブはバックグラウンドページでは機能しません。明らかにWindow.open()は解決策ではありません。しかし私はiFrameを試し、それがどのように進むのか教えてくれます。 – budsiya