別のドメインのローカルストレージに書き込むにはどうすればよいですか。アイデアは、ローカル記憶域に何かを書き込むためにクロム拡張子が必要であり、ユーザーが関連する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. Chrome拡張機能のローカルストレージにアクセスしたい
- 5. Chrome拡張機能のローカルストレージの表示/確認方法は?
- 6. Google Chrome拡張機能にリモートライブラリ(API 4.5 Mapy.cz)を組み込む
- 7. Chrome拡張機能にYouTube動画を埋め込む
- 8. Chrome拡張機能
- 9. Chrome拡張機能のインストールパラメータ
- 10. Chrome拡張機能、拡張機能を一意に識別する方法
- 11. Chrome拡張機能のダウンロードコンテキストメニュー
- 12. Chrome拡張機能のシステムトレイアイコン
- 13. はChromeの拡張機能
- 14. Chromeの拡張機能「バージョンエラー」
- 15. Chrome拡張機能のハッシュテキスト
- 16. はChromeの拡張機能
- 17. Chrome拡張機能のインストールポップアップ
- 18. Chrome拡張機能のテキストフィールド?
- 19. Chromeの拡張機能:デベロッパーツールサブパネル
- 20. Chrome拡張機能にリダイレクト
- 21. HTML Chrome拡張機能
- 22. Chrome拡張機能アイコン://拡張/
- 23. Google Chrome拡張機能のリンク機能
- 24. Chrome拡張機能:chrome.runtime.onMessage.addListener内の機能
- 25. Chrome拡張機能コピー&ペースト
- 26. Chrome拡張機能 - 設定ページで拡張機能の画像
- 27. Chrome拡張機能:タブリスナーonSelectionChanged
- 28. 私が構築していChromeの拡張機能でChromeの拡張機能
- 29. Google Chrome拡張機能ADS
- 30. Chrome Chrome拡張機能Javascriptのデバッグ
確かにこれは実行可能なソリューションのようです。今私が持っている問題は、私はバックグラウンドページからそれを行う必要があります。非アクティブなタブを作成すると、ユーザーに何かが表示されます。オフスクリーンタブはバックグラウンドページでは機能しません。明らかにWindow.open()は解決策ではありません。しかし私はiFrameを試し、それがどのように進むのか教えてくれます。 – budsiya