如何解决Chrome 扩展程序导致“未捕获承诺错误:无法访问 chrome:// URL”
我正在关注 chrome 官方网站 https://developer.chrome.com/docs/extensions/mv3/getstarted/ 中发布的如何开始使用 chrome 扩展程序here
我复制并粘贴了所有代码并以相同的方式运行。但就我而言,当我运行 chrome.scripting.executeScript
时,它会导致 "Uncaught (in promise) Error: Cannot access a chrome:// URL"
错误。
- manifest.json
{
"name": "Getting Started Example","description": "Build an Extension!","version": "1.0","manifest_version": 3,"background": {
"service_worker": "background.js"
},"permissions": ["storage","activeTab","scripting"],"action": {
"default_popup": "popup.html","default_icon": {
"16": "/images/get_started16.png","32": "/images/get_started32.png","48": "/images/get_started48.png","128": "/images/get_started128.png"
}
},"icons": {
"16": "/images/get_started16.png","128": "/images/get_started128.png"
}
}
- background.js
let color = '#3aa757';
chrome.runtime.onInstalled.addListener(() => {
chrome.storage.sync.set({ color });
console.log(`default color: ${color}`);
});
- popoup.js
// Initialize button with user's preferred color
let changeColor = document.getElementById('changeColor');
chrome.storage.sync.get('color',({ color }) => {
changeColor.style.backgroundColor = color;
});
// When the button is clicked,inject setPageBackgroundColor into current page
changeColor.addEventListener('click',async () => {
console.log('clicked');
console.log(chrome.tabs);
let [tab] = await chrome.tabs.query({ active: true,currentwindow: true });
console.log(tab);
chrome.scripting.executeScript({
target: { tabId: tab.id },function: setPageBackgroundColor,});
});
// The body of this function will be executed as a content script inside the
// current page
function setPageBackgroundColor() {
chrome.storage.sync.get('color',({ color }) => {
document.body.style.backgroundColor = color;
});
}
- popup.html
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="button.css" />
</head>
<body>
<button id="changeColor"></button>
<script src="popup.js"></script>
</body>
</html>
你有什么想法吗??
解决方法
当您尝试触发事件时,请确保您不在 chrome://extensions/
或类似事件中。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。