从具有chrome扩展名的网页中删除图像

Removing an Image from a web page with chrome extension

本文关键字:网页 删除 图像 扩展名 chrome      更新时间:2023-09-26

我正在尝试编写一个简单的谷歌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);

有人能帮我找出错误吗?

请记住,此代码与页面其他部分不是在同一环境中运行的。这是它自己的html页面,有自己的DOM、事件处理程序等。您需要将脚本注入stackoverflow页面,您可以从这里学习如何执行此操作。

您不能使用chrome.tabs.getCurrent,因为您是从弹出窗口调用它的。Popup不是一个选项卡,它会给你undefined。。

事实上,你不需要得到当前的选项卡。你需要做的是调用chrome.tabs.executeScript,比如:

chrome.tabs.executeScript( { code: "$('#hlogo').remove();" } );

为此,您需要"activeTab"权限和"https://stackoverflow.com"跨源权限。