document.getElementById返回null

时间:2013-01-22 22:00:10

标签: javascript html google-chrome button null

我正在尝试为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中访问该按钮。

2 个答案:

答案 0 :(得分:5)

替换

chrome.tabs.onCreated.addListener(onCreated());

chrome.tabs.onCreated.addListener(onCreated);

事件处理程序规则#1:No parentheses! - 您不想执行该函数,而是注册它。

答案 1 :(得分:0)

固定!我放置了window.onload = function(){onCreated()};在第一行。这意味着当加载html时它运行我的函数“onCreated”...谢谢你们,你们把我推向了正确的方向。