0

register.js 内に username() という関数があり、Web ページから呼び出したいのですが、関数が実行されません。

.js ファイルをインクルードして関数を呼び出す場所は次のとおりです。

<head>
        <link rel="stylesheet" href="css/base.css" />
        <script src="resources/jquery-1.8.1.min.js"></script>
        <script src="resources/register.js"></script>
        <script type="text/javascript">username();</script>
</head>

これは .js ファイルにあります。

function username(){
    document.getElementById("username").innerHTML="Username already in use";
}
4

2 に答える 2

2

これは、Javascript を始めたばかりの人によくある間違いです。問題は、それを何と呼べばいいかわからない場合、答えを探すのが難しいことです。

何が起こっているか:<head>要素が処理されるとき、文書の本文にはまだ何も存在していません。要素usernameが存在しないため、getElementById失敗します。

解決策 1<script type="text/javascript">username();</script>の直前に移動して</body>、すべてを配置します。

解決策 2イベントを使用して、onload他のすべてを実行した後に JavaScript を実行します。

<body onload="username()">

(jQuery には独自のonloadイベント処理もあります。)

于 2012-09-25T16:44:49.873 に答える
2

id の要素がありませんusername

(ドキュメントの下部に 1 つあるかもしれませんが、これは私たちと共有していませんが、関数を直接呼び出しているため (のようなイベントへの応答ではありませんload)、<head>まだ存在していません) .)

于 2012-09-25T16:42:48.643 に答える