プロが教える店舗&オフィスのセキュリティ対策術

ajaxによる画面項目切り替えを行っていますが、
その場合、window.onloadイベントが発生しないようです。

ユーザからの命令でwindow.onloadイベントを発生させることは不可能でしょうか?

A 回答 (2件)

できることは出来るが,ライブラリ側のソースを読んでバグあるいは仕様を把握してからにしてくれ。


====================================================
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dt …
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Q5209553 TestCase 2</title>
<style type="text/css">
p{
background-color:red;
}
</style>
<script type="text/javascript">
//<![CDATA[
var i = 0;
function test1(){
alert(i);
i = i + 1;

}
function test2(){
/* http://www.w3.org/TR/DOM-Level-2-Events/events.h … */
/* http://www.w3.org/TR/DOM-Level-2-Events/events.h … */
/* http://www.w3.org/TR/DOM-Level-2-Events/events.h … */
/* http://www.w3.org/TR/DOM-Level-2-Events/events.h … */
var e = document.createEvent("HTMLEvents");
e.initEvent("load",false,false);
window.dispatchEvent(e);
}

function test3(){
window.addEventListener('load',test1,false);
/* useCaptureはよく解らん。*/
/* Safariではbody要素のonload属性に記述しても発動しなかった。*/
/* 一応script要素内の関数外とかにかけばうまくいく事は確認しているが,俺はその手のコード嫌い */
/* IEは何か,fireEventメソッドだかがうまく実行できなかった。*/
}
//]]>
</script>
</head>
<body>
<p onclick="test3();" >あああ</p> <!-- こっちを1回クリック -->
<p onclick="test2();" >いいい</p> <!-- その後こっちをクリックするたびに表示される値が変化する -->
</body>
</html>
    • good
    • 0
この回答へのお礼

早速のご回答ありがとうございました。

こんな方法があること全く知りませんでした。
コメントにも書いて頂いたように、body.onloadが上手く発動しないようですね。
mouse.onclickは任意発動できることを確認しました。

もうしばらくがんばってみます。

お礼日時:2009/08/15 21:51

<script type="text/javascript">


window.onload=function(){
alert('onload');
}
</script>

<a onclick="window.onload();">オンロード</a>

IE8(IE7互換モード)、スクリプトレット(他のブラウザの言い方ではブックマークレット)で検証


window.addEventListener/window.attachEventを使ってセットしたものについては、
その関数を直接呼び出せば良いと思います。

<script type="text/javascript">
function test1(){
alert('hello');
}
window.addEventListener('load', test1, false);
</script>

<a onclick="test1();">オンロード</a>


FirefoxではXMLモードとHTMLモードで動作が違うかもしれません。(FirefoxのJavaScript全体に言えることですが)
    • good
    • 0
この回答へのお礼

お礼遅くなり申し訳ありませんでした。

たいへん勉強になりました。
参考にし、実装していきたいと思います。

お礼日時:2009/09/03 17:41

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!