Google Chromeの拡張機能で、ユーザーがリンクをクリックして自動的にページにログインする必要があります。
フローは次のようにする必要があります。ユーザーがGC拡張のリンクをクリックすると、スクリプトは必要なすべてのパラメータを取り、新しく開いたタブに送信します。
私のスクリプトは、渡されたのparamsを挿入し、いくつかのアクションを行うことがあります。
しかし、私は理解していない、どのように変数をGC拡張スクリプトから新しく開いたタブに渡すことができますか?ここで
は、私がmain.jsでこれを使用するために、これまでに試した私のmanifest.jsonをChrome拡張機能から開いているタブに変数を渡す
"content_security_policy": "script-src 'self' https://ajax.googleapis.com; object-src 'self'",
"content_scripts": [
{
"js": [ "window/content.js"],
"matches": [
"https://steamcommunity.com/login/home/?goto=",
"http://steamcommunity.com/*",
"https://steamcommunity.com/*"
]
}
],
"background": {
"scripts": [
"./scripts/back.js"
]
},
"web_accessible_resources": [
"popup.js",
"window/content.js"
],
"permissions": [
"activeTab",
"tabs",
"<all_urls>",
"cookies",
"declarativeContent"
]
です:
chrome.tabs.executeScript(
tab1.id,
{code: "var test =" + test
allFrames: true
},
{file: "../popup.js"},)
})
しかし、クリックを行うと、スクリプトは新しいタブを開き、私が書いたすべてを実行しますが、変数 'test'は表示されません。
executeScriptは、 'file'と' code'の両方が指定されているときは明らかに 'file'だけを使用します。メッセージを使用するか、単にexecuteScriptを入れ子にします。外側は 'code'を実行し、コールバックでinnerは' file'を実行します。 – wOxxOm
スクリプトは拡張機能のスコープ内で実行されるため、ページに何かを書くことは非常に困難です。 'localStorage'を使うことをお勧めします。これは、あなたがしようとしていることに応じて、プロとかコンのセッションの間に存続することを覚えておいてください。 – Archer