在清單 v2 中,此代碼作業并在單擊按鈕時注入腳本:
popup.js v2(有效)
document.addEventListener('DOMContentLoaded', function () {
// Get button by ID
var button = document.getElementById('btnScan');
// Define button on click action
button.onclick = function () {
chrome.tabs.executeScript(null, {
file: 'Scripts/script.js'
});
window.close();
}
});
現在在清單 v3 中,chrome.tabs.executeScript被替換為chrome.scripting.executeScript.
scripting權限添加到manifest.json.
popup.js v3(不作業)
document.addEventListener('DOMContentLoaded', function () {
// Get button by ID
var button = document.getElementById('btnScan');
// Define Scan button on click action
button.onclick = function () {
chrome.scripting.executeScript
(
{
target: { tabId: null}, // ???????
files: ['Scripts/script.js']
}
);
window.close();
}
});
問題是chrome.tabs.executeScript需要tabId值作為引數之一。如何在清單 v2 版本 javascript 中獲取tabId價值popup.js或轉換它以使其作業相同?
uj5u.com熱心網友回復:
感謝@wOxxOm 發布了一個鏈接作為評論。
解決方案是獲取活動選項卡并使用其tabId.
document.addEventListener('DOMContentLoaded', function () {
// Get button by ID
var button = document.getElementById('btnScan');
button.onclick = injectScript;
});
async function injectScript() {
const [tab] = await chrome.tabs.query({ active: true, currentWindow: true });
await chrome.scripting.executeScript({
target: { tabId: tab.id },
files: ['Scripts/script.js']
});
window.close();
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/378704.html
標籤:javascript 谷歌浏览器 谷歌浏览器扩展 chrome-extension-manifest-v3
上一篇:AttributeError:'dict'物件沒有屬性'click'錯誤與find_element_by_css_selector()和click()使用Sel
