0

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

4

2 回答 2

5

代替

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

chrome.tabs.onCreated.addListener(onCreated);

事件处理程序规则 #1:没有括号!- 您不想执行该功能,但要注册它。

于 2013-01-22T22:01:35.230 回答
0

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

于 2013-01-23T17:13:01.663 回答