我正在尝试编写一个简单的Google Chrome扩展程序,可以从stackoverflow.com网站中删除stackoverflow徽标。但它不起作用。
这是我的工作。
manifest.json
{
"manifest_version": 2,
"name": "Transpose",
"description": "Extension to switch images",
"version": "1.0",
"browser_action": {
"default_icon": "icon.png",
"default_popup": "popup.html"
},
"permissions": [
"activeTab"
]
}
popup.html
<!doctype html>
<html>
<head>
<title>Transpose</title>
<script src="jquery-1.11.3.min.js"></script>
<script src="popup.js"></script>
</head>
<body>
<h1>Transpose</h1>
<button id="btnEnable">Enable Add-on</button>
</body>
</html>
popup.js
document.addEventListener('DOMContentLoaded', function () {
chrome.tabs.getCurrent(function (tab) {
//alert(tab.title);
$('#btnEnable').on('click', function () {
$('#hlogo').remove();
});
});
}, false);
任何人都可以帮我弄清楚错误吗?
答案 0 :(得分:2)
请记住,此代码未在与页面其余部分相同的环境中运行。这是它自己的html页面,它有自己的DOM,事件处理程序等。你需要将一个脚本注入stackoverflow页面,你可以从{{3)学习如何做}}。
答案 1 :(得分:1)
您不能使用chrome.tabs.getCurrent
,因为您是从弹出窗口调用它。 Popup isn't a tab and it will give you undefined
.
实际上,您不需要获取当前选项卡。您需要做的是致电chrome.tabs.executeScript
,如:
chrome.tabs.executeScript( { code: "$('#hlogo').remove();" } );
为此,您需要"activeTab"
个权限和"https://stackoverflow.com"
cross-origin permissions。