• ベストアンサー

jQueryBlockUIをフレーム内で動かす時

2つあるフレームのうち、片方のフレーム内に設置したボタンを押したらBlockUIが動くように作りました。 処理中は確かにBlockUIが動作しているのですが、片方のフレーム一杯にしか表示されません。 画面全てに表示させたいのですが、どのように書けば良いのでしょうか? 記述方法、もしくは参考になるURLがありましたら、教えてください。 宜しくお願い致します。

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

  • ベストアンサー
  • yyr446
  • ベストアンサー率65% (870/1330)
回答No.1

フレームがiframeなのかframesetのframeなのか書いて無いのでわかりませんが、 iframeなら親から制御する事で画面全てにブロックがかけられました。 (例) <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="ja-JP"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta http-equiv="Content-Script-Type" content="text/javascript"> <title>Block Ui test</title> <script type="text/javascript" charset="utf-8" src="/jslib/jquery-1.3.2.min.js"></script> <script type="text/javascript" charset="utf-8" src="/jslib/jQueryblockUI.js"></script> <script type="text/javascript" charset="utf-8"> <!-- $(document).ready(function(){ var frame=$($("iframe")[0]); frame.load(function(){ frame.contents().find('#blockButton').click(function(){ $.blockUI(); setTimeout($.unblockUI, 2000); }); }); }); // --> </script> </head> <body> <iframe src="left.htm"></iframe> <iframe src="right.htm"></iframe> </body> </html> 同じ事をframesetでやろうとすると、 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="ja-JP"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta http-equiv="Content-Script-Type" content="text/javascript"> <meta http-equiv="Content-Style-Type" content="text/css"> <title>Block Ui test</title> <style type="text/css"></style> <script type="text/javascript" charset="utf-8" src="/jslib/jquery-1.3.2.min.js"></script> <script type="text/javascript" charset="utf-8" src="/jslib/jQueryblockUI.js"></script> <script type="text/javascript" charset="utf-8"> <!-- $(document).ready(function(){ var frame=$($("frame")[0]); frame.load(function(){ var right = $($("frame")[0].contentWindow.document); right.find('#blockButton').click(function(){ alert("ブロックされた"); $.blockUI(); setTimeout($.unblockUI, 2000); }); }); }); // --> </script> </head> <frameset cols="500,*" frameborder="no" border="0" framespcing="0"> <frame src="left.htm"> <frame src="right.htm"> </frameset> </html> clickのイベントまでは拾えますが、 $.blockUI(); が動作しません。 ライブラリーのソースを見ると $.blockUI = function(opts) { install(window, opts); }; となっており、windowオブジェクトを渡してますが、 これがframesetに対応して無いみたいです。 よって、無理でしょう.....

jobvba
質問者

補足

回答ありがとうございます。 ソースを記載していなかったため、非常に分かりにくい質問となってしまいました。 フレームは、framesetです。 回答頂いた内容を実装してみたところ、仰られている通りの動作になりました。 似たような動作でも構わないのですが、実現はできるのでしょうか?

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 1つのファイルにデザイン(HTML)と計算処理(PHP)を記述していますが、分けたいと思っています。

    PHP初心者です。 1つのファイルにデザイン(HTML)と計算処理(PHP)を記述していますが、分けたいと思っています。 何か方法がありますでしょうか?よろしくお願いします。 (画面仕様) HTMLファイルにFRAME1とFRAME2という名前の2つのインラインフレームを配置しています。 FRAME1はHTMLファイル、FRAME2はPHPファイルを使用します。 FRAME1にはテキストボックス、FRAME2はボタンが表示されます。 (動作手順) 以下のような動作をします。 (1)FRAME1のテキストボックスの内容を変更、又はFRAME2のボタンを押す。 OnChange()又はOnClick()イベント時にJavaScript処理が実行される。 <JavaScript処理> FRAME2のURLを更新(テキストボックス内容をURLの引数にする) (2)FRAME2は更新されたのでボタンが再表示される。 PHPとJavaSctiptが記述されているので実行される。 <PHP処理> URL引数で渡された値を判定、計算 <JavaScript処理> FRAME1のテキストボックスにPHPで計算した値を表示 FRAME2に使っているファイルにHTMLとPHPとJavaScriptが一緒にかかれています。これを何とかしたいです。

    • ベストアンサー
    • PHP
  • フレーム内の表示方法

    ninja2003でHPを作っています。 フレームを使って左右2分割にし、片方のフレームに各ページのリンクを張ろうと考えています。 他のHPを参考にしていると、初めはフレームにA,B,C…という大項目のボタンが表示されていて、仮にAのボタンをクリックすると、さらにA1,A2,A3と小項目の表示ボタンが現れ、A1ボタンをクリックすると反対のフレームに目的の画面が表示される仕組みがありますが、あれはどうやって作るのでしょう。 イメージとしては、エクスプローラーの[+]ボタンをクリックすると、下位の階層が現れるというものと同じだと思うのですが、マニュアルを見ても出ていません。 どなたか教えてください、よろしくお願いします。

  • フレーム内でのリダイレクトについて質問です。

    フレーム内でのリダイレクトについて質問です。 フレーム内でのリダイレクトした際に、サイト全体をリダイレクトする方法を知りたいです。添付のように切り分けたフレームで、例えば(4)のエリアに「ログアウト」ボタンを設置し、押下すると、フレームを全て解除して1画面の「ログアウトしました」画面に飛ばしたいと考えています。 どうやればいいのか、ご指南いただければ幸いです。

    • ベストアンサー
    • PHP
  • onClipEvent(enterFrame)よりもフレームに書いたほうが良い?

    最近Flashでfunctionの使い方を勉強しています。 そこで思ったのですが、例えばあるキーが押されたときに動作を行なわせたい場合。ムービークリップにonClipEvent(enterFrame)で記述する方法とフレームにfunctionで記述する方法の2通りあります(もしかして他にも方法あったりします?)。 素人考えでは、例えばonClipEvent(enterFrame)にtrace文を書いた場合、ずっとtrace処理が行なわれますが、フレームに書いた場合はそのフレームが読み込まれた瞬間のみtrace処理が行なわれます。一見onClipEvent(load)のようですが読み込み後、たとえフレーム移動がそこでstopになったとしても、イベントハンドラによって処理を行なわせることは可能です。そう考えると、処理の軽さ的にはフレームに記述する方法の方が優れているのでしょうか? ムービークリップにonClipEvent(enterFrame)で記述する場合とフレームにfunctionで記述する場合、両者の長所・短所も合わせて紹介していただけると助かります。 以上になります。よろしくお願いします。

  • フレームで区切られたウィンドウを閉じたい

    HTML,JavaScriptでの質問です。 Aの画面よりボタンのonClickイベントでBの画面を開いています。 Bの画面は親フレームがあり、上下にフレームを切っています。 Bの上フレームのボタンのonClickイベントでclose();を記述しているのですが、 フレームを切っているためにウィンドウが閉じないようなのです。 ※Bの上フレームだけを開き、ボタンを押すと閉じるので。 環境はWindows98,IE5.5です。 どなたか対応方法をご存知の方、よろしくお願いします。 Aのボタンでのイベント: onClick='subwin = window.open("B0.html","bbb");' Bのボタンでのイベント: onClick='close();'

    • ベストアンサー
    • HTML
  • フレーム&リファラ

    content1.html のページからリンクして、 frame.html(menu.html , content1.html) を表示するにはどのような方法があるでしょうか。 *.html からのリンクで、 frame.html(menu.html , *.html) を表示させるようにする記述を教えていただきたいです。 一応、フレームは cols="120,*" として120の方が menu.html です。 また、frame.html(menu.html , *.html)が表示されている状態で、 menu.htmlの方のリンクで、*.htmlだけを表示する(フレームを解除する)ことは出来るのでしょうか? ページのURLはlocation.hrefで取得できますが、どのように応用すればよいのかという感じです…。

    • ベストアンサー
    • HTML
  • ローディング画面で100フレーム使って読み込み状況を表示させたいです

    FLASH8を使っています。 最初のローディング画面を 100フレームのムビークリップで状況を表示させて 全て読み込ませてから再生を開始する様に設定したいのですが スクリプトの記述がわかりません。 どなたかアドバイスをお願い致します。

    • ベストアンサー
    • Flash
  • フレームが正しく表示されません。

    フレームが正しく表示されません。 フレームの右側に表示されるように書かれているHPが、 全画面表示になってしまいます。 何がどうなったのでしょうか。 頭の中に?がいっぱいです。

  • ターゲットパスでフレーム指定はできますか

    FlashCS3で作業中です。 メインタイムラインの中の、6フレーム目にsyousai6というムービークリップがあります。9フレーム目にsyousai9というムービークリップがあります。 このsyousai9の中の2フレーム目にボタンを設置し、押したらsyousai6の9フレーム目に画面が切り替わるようにしたいのですが、ビヘイビアパネル>ムービークリップ>フレームまたはラベルへ移動して再生を停止 で、 on (release) { //Movieclip GotoAndStop Behavior this._parent.syousai6.gotoAndStop("9"); //End Behavior } と記述しても無反応です。絶対パスにしても結果は同じでした。どこか記述が間違っていますでしょうか?

  • 違うフレームのURLを取得したい

    いつもお世話になっております。 上下でフレームが分かれていて、上にメニュー、下に内容が表示されます。 下に表示されているURLによって、上のメニューのボタンの色をVBScriptのIF文を使って変えたいと思っています。 そこで、下のフレームに表示されているURLを上のフレームで取得したいのですが、どうしたら実現できるでしょうか。 JavaScriptでparent.下のフレーム名.location.hrefとすれば、URLを取得できることまでは調べたのですが、JavaScriptからASPに値を渡す方法が分かりませんでした。 ASPだけでURLを取得する方法か、JavaScriptで取得した値をASPに渡す方法のどちらかをご存知の方がいらっしゃったら教えてください! よろしくお願いいたします。

このQ&Aのポイント
  • 急に画面に英語文が表示されるようになり、どうやって戻せば良いのかわかりません。
  • 富士通FMVの画面に突然英語文が表示されて困っています。解決方法を教えてください。
  • 画面に英語文が表示されてしまい、どうやっても元に戻せません。富士通FMVの設定方法を教えてください。
回答を見る