为什么onclick不工作在一个按钮,但在谷歌Chrome扩展工作在一个DIV

Why does onclick not work on a button but works on a DIV in Google Chrome extension

本文关键字:一个 工作 谷歌 Chrome 扩展 DIV 为什么 onclick 按钮      更新时间:2023-09-26

我决定尝试写一个Google Chrome扩展。我正在浏览样本并编写我自己的版本。我已经下载了set_page_color,我正在写我自己的版本。

谁能告诉我为什么这不起作用

<button onclick="click(this)" id="red">Red</button>

<div onclick="click(this)" id="red">Red</div>

我很高兴使用div,如果我必须,但我不明白为什么我需要。特别是因为Google Analytics教程使用按钮作为javascript触发器。

如果你需要更多的代码,请告诉我。

编辑

这是从谷歌的set_page_color弹出。html的代码(位丢失,我敢肯定是不相关的)

<script>
function click(color) {
    chrome.tabs.executeScript(null,
        {code:"document.body.style.backgroundColor='" + color.id + "'"});
    window.close();
}
</script>
<div onclick="click(this)" id="red">red</div>
<div onclick="click(this)" id="blue">blue</div>
<div onclick="click(this)" id="green">green</div>
<div onclick="click(this)" id="yellow">yellow</div>

这是他们的清单文件

{
    "name": "A browser action with a popup that changes the page color.",
    "version": "1.0",
    "permissions": [
        "tabs", "http://*/*", "https://*/*"
    ],
    "browser_action": {
        "default_title": "Set this page's color.",
        "default_icon": "icon.png",
        "popup": "popup.html"
    }
}

这就是它的全部。如果您将<div onclick= ...更改为<button onclick=...,则无法工作

问题是click<button> DOM元素的属性,而不是<a> DOM元素。重命名你的方法,它应该正常工作。