• ベストアンサー

ie のレイアウト完了イベント

ie のレイアウト完了イベント レイアウトが完了するまで非常に時間のかかるフォームがあります。 レイアウトが完了するまで入力できないようにしたいのですが、 レイアウトが完了したことを知るイベントはないでしょうか。 ググルと firefox だと onload イベントが発生した時には、レイアウトが 完了しているという情報が見つかるのですが、ie でレイアウトの完了を 知る方法はないでしょうか。

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

  • ベストアンサー
  • zabiora
  • ベストアンサー率100% (1/1)
回答No.1

レイアウトという言葉が抽象的でイマイチ何を指しているのか理解しかねるのですが「レイアウト=エレメントの配置の完了」という理解でよろしいのでしたら prototype.jsの使用ができる環境ならばprototype.jsの拡張イベントである'dom:loaded'を使用すればいいと思います 参考URLを張っておきますので参照していただけたらと思います

参考URL:
http://ajax.studynet.jp/libraries/prototypejs/dom-loaded
t-okura
質問者

お礼

お礼が遅くなりました。 残念ながらレイアウトが完了したタイミングをとらえるイベントの 有無はわかりませんでした。 対処したかったページでは、onload イベント中にINPUT項目の制御 (条件により readonly にする)をしていたのですが、これにもかなりの 時間がかかっていました。 そこで、問題の表を HTML 上で display:hidden として隠し、 onload 処理の最後で display:visible に変えて表示するように しました。 その結果、表が表示されるまでにしばらくかかるのですが、 表示されたときにはレイアウトは完了していました。 onload 処理にかなりの時間がかかるため、たまたま希望どおりの 動作になっているのだと思うのですが、この方法で対処することにしました。 解決には結びつきませんでしたが、ご回答ありがとうございました。

t-okura
質問者

補足

回答ありがとうございます。参考 URL 拝見しました。 サイズの大きい画像ファイルなどが存在すると、loadイベントが発生するまで 時間がかかります。この場合、dom:loadedイベントを利用すると、ユーザビリ ティが向上します。 とあるので、dom:loaded では画像の読み込みが終わる前にイベントが発生する のだと思います。 質問があいまいだったようなのですが、ウェブページを表示したとき、画像が 表示されるにつれ配置がずれていき、すべての画像が読み込まれて 安定した表示位置に落ち着くことがあります。このブラウザに表示される 最終的な配置をレイアウトと書きました。 dom:loaded では、最終的な配置が表示される前にイベントが発生すると 思うのですが、最終的な配置が表示されたあとで発生するイベントはない でしょうか。

その他の回答 (2)

回答No.3

ところで、imgタグのなかに、たかさとか、はばとか、していしている? そういうおちじゃなかったら、ごめん。

t-okura
質問者

お礼

質問に興味を持っていただき、ありがとうございます。 「レイアウトが完成する」というのを説明するため、img を出したのは かえってよくなかったようです。 実際に対処したいページには img はなく、div を使った擬似フレーム 内にさまざまな行数を持つ大量の table があります。 table 内には input 要素があるのですが、その数は多いときで 3,000個くらいになります。 ページが表示されたあと、擬似フレームにスクロールバーが現れるまでに かなり時間がかかっているのですが、スクロールバーがあらわれまで入力を 禁止したく、そのタイミングをとらえたいのです。 この処理を行うのに適当なイベントがありましたらご教示ください。 よろしくお願いします。

  • zabiora
  • ベストアンサー率100% (1/1)
回答No.2

要するに全ての画像が読み込み(表示)終わったタイミングを知りたいってことですかね。 各<img>タグのonloadイベントを利用するのではだめなのですかね? javascriptとの連携して多少コード書けば全ての画像が読み込み完了したタイミングを知ることは容易にできると思いますが。 firefoxでのonloadイベント云々といってるのは、window.onloadの事なのか各画像のタグのonloadの事なのかも知りたいですね。

t-okura
質問者

補足

まだ説明が足りなかったようです。 ページの各要素の読み込みが完了したタイミングではなく、 ページ内のあるべき位置への配置が終わり表示されたタイミングを とらえたいのです。先の説明では例としてあげやすいのでimgを 使ったのですが、レイアウトに時間がかかっているのは div を 使った擬似フレーム内にある100個くらいのテーブルなのです。 window.onload イベントが発生したタイミングでは擬似フレーム 内のレイアウトが完了しておらずスクロールバーが表示されて いません。しかし、部分的に表示されているボタンや入力フィールド の操作ができてしまいます。擬似フレームのスクロールバーが 表示されるまでに6秒くらいかかるのですが、この間 操作できないよう 制御したいと思っています。 firefox の onload イベントはレイアウト完了後に発生すると いうのは下記 URL で見ました。 http://wontfix.blogspot.com/2010/02/onload.html よろしくお願いします。

関連するQ&A

  • 読み込み完了時のイベントは?

    ページが読み込まれた時のイベントは「onLoad」ですが、読み込みが完了した時のイベントはあるのでしょうか? 何故知りたいかといいますと、画面表示後すぐにそのページでsubmitしたいのですが、読み込み中ですとオブジェクトが見つからずにエラーになってしまうからです。 良い方法がありましたら教えてください。

  • イベントハンドラを使わずに実行するには?

    googleのように、ページが読み込まれたらフォームにフォーカスを 移すということをやりたいのですが、onLoadのようなイベントを 使わずに行うことは出来ますでしょうか? 掲示板でこの機能を使いたいと思っています。しかし、全てのページに フォームがあるわけではないので、<body onLoad="~">で実現すると フォームがない時にエラーが発生してしまいます。 document.write( "hoehoe" ); が直書きで実行されるなら同じようにできるのでは? と思って <script> <!-- document.form.comment.focus(); // --> </script> とやってみましたができませんでした。 onLoadを使わない方法、もしくは<body>以外でonLoadを使う方法が ありましたら是非教えてください。

  • ここ2~3日Firefoxで教えて!gooのレイアウトが崩れる

    ここ2~3日Firefoxで教えて!gooのトップページのレイアウトが崩れます 原因や改善方法をご存じの方よろしくお願いします IEやFirefoxのIETabでは症状は発生しません

  • Access データ表示 完了時のイベント

    Access2003で開発しております。 フォームのLoadが完了したというタイミングを取得したいのですが、 Formのイベントでそのようなイベントはありますでしょうか? 本当は「各テキストボックスにテーブルからのデータがセットされた後」 というタイミングが取得したいのですが、VBとは違い、ロジックに よる値の変更ではChangeイベントは発生しないようで・・・、 AfterUpdateイベントも、フォーカスを当てて直に編集しないと 発生しないようなので・・・。ですので、値セットが完了した= Form_Loadが完了した、というようなイベントがありましたら ご教授願いします。宜しくお願いします。

  • イベントが発生しません・・・

    Excel VBAでの質問です。 フォーム上にコントロールはTextBox1つしかありません。 商品コードを入力させ、入力値より商品データを検索、編集させようと思います。 コードを入力しエンターキーを押しても、フォーカスの移動場所が無いためかExitイベントが発生しません。 閉じるボタン[×]でフォームを閉じると、Exitイベントは発生するようです。 入力後はフォームは閉じてもかまいませんが、イベントを発生させることはできるでしょうか。 どなたか教えてください。

  • IEがサイト読み込み完了と同時に閉じてしまう

    OSをIEとFirefoxを入れ使い分けてますが、IEが使えなくなりました。サイトに接続し、ページを読み込むのですが、読み込み完了と同時に閉じてしまいます。原因がわかりません。友人は「地雷」を踏んじゃったのではないかと言うのですが、IEを復活させる方法を知りたいです。

  • IEの読み込み完了の取得

    初めて質問します。 ActiveXを使ってIEを操作する時に、IEの読み込み完了を皆さんはどのように判断していますか?私は、Busyプロパティを使っているのですが、どうも完全ではないようで、ウェイトを入れて対応しています。もっとスマートな方法ってないのでしょうか?DocumetCompleteイベントも複数のHTMLドキュメントから構成されていると判断が必要になるし・・!! おもに、Excelから利用しているので、Excelを例に取ってもらえれば嬉しいです。

  • CSSでレイアウトしたときにIE6とFF2でサイドナビの表示が異なります。

    CSSでレイアウトしたのですが、サイドナビのショップ名一覧が ファイヤーフォックス2で見たときは、異常はないのですが、 IE6・IE7で見ると右ヅレしてしまいます。 CSSの設定方法が悪いのでしょうか? 何故か分かりません。 すいませんが教えて下さい。 http://pairing.dayuh.net/index2.html

    • 締切済み
    • CSS
  • IEで読込完了・リロード時にウィンドウを最下部にスクロールする

    IEで読込完了・リロード時にウィンドウを最下部にスクロールするにはどうしたらよいのでしょうか? scrollTo(0,innerHeight);を使おうとしたのですがinnerHeightはIEに対応していませんでした。 onLoadで関数を読み出すのならその関数の中身だけでもいいので教えてください。

  • どう変更してもIE6だけCSSレイアウトが崩れてしまいます。

    CSSレイアウトで、サイトを作成していたのですが、 最近になってIE6で確認してみると、レイアウトが崩れまくっていました。。。 3カラムレイアウトなのですが、Firefox等他のブラウザではきちんと表示されるので、なぜかIE6だけ縦1列になってしまいます。。 こちらのサイトでもIE6はレイアウトが崩れやすいという情報がたくさんあり、そちらのアドバイスを参考にしながら1日かけてがんばってのですが、できませんでした。もう限界です(涙) 現在のCSSは、 * { margin:0; padding:0; } .wrapper { width: 740px; margin: 0 auto; } .header { width: 740px; } .main { width: 740 px; /* 両端ブロックとコンテンツを囲んでいるクラスです。 */ } .menu {display: inline; float: left; width: 205px; } .contents {display: inline; float: left; width: 385px; } .affiliate {display: inline; float: left; width: 150px; } .footer { clear: both; width: 740px; } というような状態です。 どなたかアドバイスいただけますと大変幸いです。 よろしくお願いいたします。

    • ベストアンサー
    • HTML

専門家に質問してみよう