• ベストアンサー

IE7におけるonresizeイベントハンドラについて

お世話になります。 IE7を使用しているのですが、window.onrisizeイベントハンドラがうまく機能しないようなのですが、これはIE7の仕様なのでしょうか? また、IE7以外のブラウザでwindow.onrisizeイベントハンドラが機能しないようなブラウザはあるのでしょうか? ご存知の方がいらっしゃいましたら、よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

掲示されたソースを実行してみました。 onresizeはalert、resize共に動作しています。 (Minefield,IE7共に。IE7は(ローカルも)セキュリティを高にした上で,デスクトップ上に配置したファイルを読み込ませ,情報バーで許可した) onmove,onMove共にIE7,Minefieldで動作しなかった。DOCTYPE宣言を取り除いても同様だった。(標準モードと互換モード) あくまでFirefox側の書類だが,こんなのがある。(IEの文献は知らん) http://developer.mozilla.org/en/docs/DOM:window#Event_Handlers https://bugzilla.mozilla.org/show_bug.cgi?id=66733 ちなみに,window.onresize=eve1;としたら,リサイズ時にきちんとeve1関数が発動しました。 一方でWebを検索してみると古い時代のIEやNetscapeで対応していたような記述もちらほら見かけるため,当方うろたえています。 他の回答者の実験結果,考察を待ってみたいと思います。 なお、掲示されたソースは onresize→resizeTo→(再びonresizeイベントが発生)→onresize→・・・ というループが発生する可能性があるような気がするのでそこも考えた方がいいかもしれません。

その他の回答 (3)

回答No.4

#2に追記します。Minefield(Firefox 3.0a3pre)で実験したときは [Tools]-[Options] [Content]タブの[Enable Javascript]の[Advanced]を弄りました。何を弄ったかは忘れましたが。

kiku2006
質問者

お礼

himajin100000様 ご親切にいろいろとご教授いただきましてありがとうございました。

回答No.2

あとテストケース(再現しない最小限のソース)くれると嬉しい。 http://developer.mozilla.org/en/docs/DOM:window.onresize にあるソースを弄った以下のソースはIE 7で動作した。 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> <head> <title>onresize test</title> <script type="text/javascript"> window.onresize = resize; function resize() { alert("resize event detected!"); } </script> </head> <body> <p>Resize the browser window to fire the resize event.</p> </body> </html>

kiku2006
質問者

補足

himajin100000様 ありがとうございます。 教えていただいたソースを試しましたらきちんと動きました^^;。 自分のソースを見直してみたのですが、 どうやら機能していないのは、"resizeTo"なのかもしれません...。 eve2() のalert("resize!");を先にもってくると機能しました。 また、onmoveも機能していないようで...。 元のソースは、秀和システムの詳解Javascript辞典という本のサンプルコードだったのですが、それも動かなかったので、何かが違うのかなと思った次第です。 ちなみに、テストしたソースコードは以下の通りです。 何かおかしなところがありましたら、教えていただけるとありがたいです。 よろしくお願いいたします。 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "​http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">​ <html xmlns="​http://www.w3.org/1999/xhtml"​ xml:lang="ja" lang="ja"> <head> <title>test</title> <script type="text/javascript"> <!-- function eve1() { alert("onmove!"); window.moveTo(50,50); } function eve2() { window.resizeTo(400,400); alert("resize!"); } window.onmove = eve1; window.onresize=eve2; //--> </script> </head> <body> </body> </html>

回答No.1

ちょっと実験してないんだが,(ソースコードの書き方に自信がない(ぉ) >window.onrisize window.onresize の間違いだったりして

kiku2006
質問者

補足

おはずかしい...。 テストしたソースコードの方は window.onresize=eve2; だったので、たぶんスペルミスは無さそうです。 サイズの取得もIEは document.body.clientHeight みたいな感じになるようで、 window.innerWidth は機能しないみたいでした。 サイズ取得のように何か実現方法があると良いのですが...。

関連するQ&A