问:
chrome.tabs.executeScript(null, { code: `token = '${token}';` }, () => chrome.tabs.executeScript(null, {file: 'js/hook.js'})); //在需要时注入到页面中 转 chrome.scripting.executeScript
gpt:
In Manifest V3, you can replace `chrome.tabs.executeScript` with `chrome.scripting.executeScript`. Here's how you can modify your code:
```javascript
chrome.tabs.query({ active: true, currentWindow: true }, function (tabs) {
const activeTab = tabs[0];
if (activeTab) {
chrome.scripting.executeScript({
target: { tabId: activeTab.id },
function: (token) => {
// This code runs in the context of the page
window.token = token;
},
args: [token],
}, () => {
// This code runs after the script has been executed
chrome.scripting.executeScript({
target: { tabId: activeTab.id },
files: ['js/hook.js'],
});
});
}
});
```
In this example:
-
`chrome.scripting.executeScript` is used to execute a script in the context of the active tab.
-
The first `executeScript` call sets the `token` variable in the context of the page.
-
The second `executeScript` call injects the `js/hook.js` file into the page.
Remember to handle the logic in `js/hook.js` accordingly, and ensure that the necessary permissions are set in your manifest file.