为什么onclick不工作在一个按钮,但在谷歌Chrome扩展工作在一个DIV
Why does onclick not work on a button but works on a DIV in Google Chrome extension
我决定尝试写一个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元素。重命名你的方法,它应该正常工作。
相关文章:
- 当单元格内容由于forumula从另一个工作表编译数据而更改时发送电子邮件
- 当源工作表添加了行时,如何编写在一个工作表中添加行的脚本
- 如何在jquery中为object键创建一个工作变量以避免额外的代码
- 是否有可能在 threejs 中创建一个工作的计算机界面
- Javascript .call() 用法.一个工作案例,一个不是.有什么区别
- 我可以在 MVC 3.0 中获得一个工作 Asp.NET jsTree 4 示例,并异步加载节点
- 将数据从一个工作表复制到另一个工作表;使用目标工作表中的复制数据创建一个表
- 即使我从另一个工作小提琴复制代码,JSFiddle 也不起作用
- dojo's registry.findWidgets() 的一个工作示例
- 根据条件将行从一个工作表复制到另一个工作表
- 你如何使用JavaScript制作一个工作时钟
- 网络音频Api:我如何添加一个工作卷积器
- 我想编辑一个工作的javascript代码来增加它的功能
- 多个谷歌图表,只有一个工作
- 选择一个工作的国家
- jQuery Ajax的两个相同的函数为其中一个工作,而不是另一个
- 两次相同的onclick功能-只有一个工作
- 是否有一个工作的qrCode阅读器在Js/Jquery那里
- 将一个工作的jQuery表单复制到另一个位置,但只复制原来的工作
- 在两个不同的工作表中查找具有相同列的选定行,并将其从其中一个工作表中删除