0

onloadイベントをdiv要素に追加するにはどうすればよいですか?

私はこれを読みましたが、これにも問題がありますonLoad。divにはないことはわかっていますが、次のようなスニペットを実行できるはずです。

...
<div id="content">
    <div class="text">
    </div>
</div>
<script type="text/javascript">
    navigate('main.php', 'content');
</script>
....

これは機能しません。新しいブラウザセッションを開始してindex.phpに移動すると、ログインウィンドウが表示されます。ログイン後、index.phpにリダイレクトされますが、いくつかのセッション変数とCookieが設定されています。これまで、index.phpには上記のコードが含まれていましたが、これcontentは存在していませんでした。

今私の問題に:content私が持っているナビゲート機能では、ほとんどのブラウザが存在するものを受け入れることを拒否しているように見えます:

function navigate(str, what) {
    if(what == null) {
        what = document.documentElement;
    } else {
        what = document.getElementById(what);
    }

null実行時に有効な要素ではないため、どうなりますか。

私はもう試した:

window.onLoad = naviate('main.php', 'content');

それは何もしません、そこに同じ問題があります..また、<script>運がなくて最後にブロックを置いてみました。

jQueryなどは使えないので、標準のJavascript、HTML、CSSのままにしてください。使用中のブラウザ:IE8、Chrome、FireFox。


  1. index.phpをロードします
  2. loginwindowにログインします
  3. index.phpをロードします
  4. index.phpのロードが完了したら、以下を含むすべての要素を読み取りますcontent
  5. contentいくつかのAJAXデータで更新します。

それは

ログインし、失敗した結果でページを1回ロードしてから、ページを再度更新します。

そして、その理由は次のとおりです。

私はログインウィンドウでもAJAXを使用しています。これはnavigate()、すべてのボタンと同じように使用しますが、そうでないものも使用します。したがって、問題はindex.php、ログインウィンドウでロードされ、ログインウィンドウがページ全体をAJAX(javascript)で更新しnavigate()、AJAX呼び出しからの戻りデータ内から再度呼び出しを試みることです... 「インライン」navigate()はと呼ばれる!!! 、AJAXを介してロードされるため、すべての要素を認識しているわけではありません。

4

2 に答える 2

0

これを試して :

window.onload = function(){
    navigate('main.php', 'content');
}
于 2013-02-10T14:56:35.777 に答える
0

私のテストによると.getElementById、ページが読み込まれる前でもdiv要素を取得できます。関数を呼び出す前に、関数を定義する必要があること
を忘れないでください。navigateしたがって、ドキュメントの最後にスクリプトがある場合(これは正しいです)、これらのスクリプトの実行後に関数を呼び出す必要があります。

しかしとにかく、あなたは.onload関数を間違って割り当てました。このようにしてください:

window.onload = function(event) {
                /*any script here*/
}

またはこのように:

function load(event) {
                /*any script here*/
}
window.onload =load;
于 2013-02-10T14:58:48.850 に答える