簡體   English   中英

document.getElementById返回null

[英]document.getElementById returns 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之前從JavaScript訪問該按鈕。

更換

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

chrome.tabs.onCreated.addListener(onCreated);

事件處理程序規則1: 不加括號! -您不想執行該功能,但要注冊它。

固定! 我放置了window.onload = function(){onCreated()}; 在第一行。 這意味着在加載html時它將運行我的函數“ onCreated” ...謝謝大家,您向正確的方向推了我。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM