我正在尝试为Chrome编写扩展程序。
我现在要做的是创建一个HTML表单,上面有一个按钮,按下时会显示一个消息框。
我的项目包含一个HTML文件和一个JavaScript文件。
<html>
<head>
<style>
body {
width:100px;
font-family: sans-serif;
font-size: 0.8em;
}
</style>
<script src="popup.js"></script>
</head>
<body>
<input id="buttonid" type="button" value="try it"></input>
</body>
chrome.tabs.onCreated.addListener(onCreated());
function myFunction()
{
alert("Hello World!");
}
function onCreated()
{
var fld = document.getElementById("buttonid");
if(fld==null)
{
alert("null");
}
else
{
alert("not null");
}
}
所以我的理解是,当呈现HTML时,它运行我的onCreated()函数。然后,这将查找ID =“buttonid”的元素。但它总是返回null,所以出现一个消息框说“null”。
任何人都能解释一下吗?这似乎毫无意义。我尝试在IE中运行稍微改进的版本,但结果相同。
为了清楚起见,我知道这不会满足我上面的描述,但是我尝试在将事件附加到它之前从JavaScript中访问该按钮。
答案 0 :(得分:5)
替换
chrome.tabs.onCreated.addListener(onCreated());
与
chrome.tabs.onCreated.addListener(onCreated);
事件处理程序规则#1:No parentheses! - 您不想执行该函数,而是注册它。
答案 1 :(得分:0)
固定!我放置了window.onload = function(){onCreated()};在第一行。这意味着当加载html时它运行我的函数“onCreated”...谢谢你们,你们把我推向了正确的方向。