1

私はこのようなjs関数を持っています

 function showProducts(){
    document.getElementById("shopList").innerHTML = "<ul><li>Test Text</li></ul>";
 }

これは、私の製品の配列を表示する必要がある関数です。id="shopList"HTMLページでdivを作成しました

        <div id="shopList">
        </div>

しかし、関数を呼び出して div 内のテキストを表示するにはどうすればよいでしょうか? これを body タグとして使用すると機能しますが、html に js コードを記述したり、onload または onclick を使用したりすることは許可されていません。私はほぼ4時間リスナーと一緒にやろうとしていますが、まだ解決策が見つかりません. 誰かが私を助けることができますか?

     <body onload="showProducts()">
4

7 に答える 7

6

純粋な JavaScript を使用する:

window.onload = function(){

};

(また

function doLoad() {
    //Do stuff on load
}

window.onload = doLoad;

Jqueryで

$(document).ready(function(){   

}); 
于 2012-05-15T01:44:29.290 に答える
1

スクリプトを一番下に置くだけです:

<body>
    ...
    <script type="text/javascript">
        myFunction();
    </script>
</body>
于 2012-05-15T04:13:08.283 に答える
1

本当に、への割り当てonloadは、リスナーでそれを行うための省略形です。私はそれをテストしていませんが、これはうまくいくはずです。

window.addEventListener("load", showProducts);
于 2012-05-15T01:48:56.733 に答える
1

Jquery を使用すると、次のようなことができます。

$(document).ready(function(){   
   showProducts();
}); 

ページが読み込まれるまで待機してから、関数を実行します。外部の .js ファイルに入れて、ページに含めるだけです。

(Jquery であるためにこの回答に反対票を投じている人のために、彼は onload() を使用できないと言ったので、このオプションについて言及しました。)

于 2012-05-15T01:41:35.873 に答える
1

リスナーにとっては難しくありません。これが解決策です(クロスブラウザではありません):

document.addEventListener("DOMContentLoaded", showProducts);
于 2012-05-15T01:49:31.893 に答える
0

「HTML にスクリプトがない」および「onload または onclick リスナーがない」という基準を考えると、関数を別のファイルに入れ、ページの下部にあるスクリプト要素から実行できます。

<script type="text/javascript" src="showproducts.js"></script>

そのため、ページにはスクリプトもリスナーもありません。コードは要素が DOM に追加されたときに実行されるため、関連する DIV の後であれば問題ありません。

ちなみに、関数は必要ありません。関数本体のステートメントをファイルに入れるだけです。

于 2012-05-15T02:49:18.013 に答える