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 に答える