• 締切済み

エラーが出たら次の処理に進む、という書き方

左右二分割のフレームで、片方のフレームからもう片方のフレーム内のデータを parent.フレームA.document.フォームA.入力窓A.value のように取り込んだりセットしたりしているのですが、フレームAやフォームAが存在しないページを表示させている時に、↑の内容を含んだ処理を実行してしまうと「~はNullまたはオブジェクトではありません~」というエラーになりますよね?その場合にこのエラーを無視する、または別の処理をするという書き方はできますでしょうか? 具体的には、 function test() { alert(parent.フレームA.document.フォームA.入力窓A.value) } という処理で、フレームAやフォームAが存在せずにエラーとなった場合、 alert(parent.フレームB.document.フォームB.入力窓B.value) という処理をしたい、というものです。また、最終的にフレームAもフレームBも存在しない場合何もしない(無視orエラーが出ない?)ようにするにはどうすれば良いのでしょうか?

みんなの回答

回答No.1

try{ // try...catch...finally構文がなければエラーコンソールにエラーが表示される hogefuga.value = 3; }catch(e){ //エラーが起きたときに実行 alert("あああ"); }finally{ //エラーが起きてもおきなくても実行 }

関連するQ&A

  • 別フレームへの必須入力チェック処理を行ないたい

    ページ構成がフレーム仕様になっていて、ヘッダページ部分にある確認ボタンを押すことで、 メインページ(フレーム名:main)部分にある入力項目の複数項目に対する必須入力チェックを行ないたいのですが、うまく処理が実行されません。 if文の条件を、if (parent.main.document.forms[0].elements[0].value == "")のようにすると、 正しく処理されますが、入力項目の数だけ記述しなければならず、さらに入力項目の数は決まっていません。 どなたか解決策をご教授いただけませんでしょうか。 <SCRIPT language="javascript"> <!-- function formchk() { if (parent.main.document.f1.food.value == "") { alert("食べ物 の項目が未入力です"); parent.main.document.f1.food.focus(); return false; } if (parent.main.document.f1.drink.value == "") { alert("飲み物 の項目が未入力です"); parent.main.document.f1.drink.focus(); return false; } } // --> </SCRIPT>

  • テキストボックスにデータがある場合にエラーを出す

    テキストボックスA テキストボックスB 2つのテキストボックスが両方とも空欄の場合もしくは、データが入っている場合はアラートを出さず、片方のみデータが入力されている時にアラートを出したいと考えています。 以下のソースを書きましたが、両方とも空欄の場合もアラートが出てしまいます。この解決方法をご教示頂けないでしょか?よろしくお願い致します。 if (document.formGeneratorForm["A"].value | !document.formGeneratorForm["B"].value){ alert('Bをご記入下さい。'); return false;reqd_err=1; } if (!document.formGeneratorForm["A"].value | document.formGeneratorForm["B"].value){ alert('記入している方のお名前をご記入下さい。'); return false;reqd_err=1; }

  • 当てはまらなかったら、エラー処理

    いい考えが思い付きません。 是非とも知恵を貸してください… CGIです。 フォームで入力された文字列とハッシュ内のキーを比較し、 一致すれば値を出力、すべてに当てはまらなかったらエラーを返すというのをやりたいのですが、 $value にフォームからの文字列が入っているとします。  $value = "1";  %hash = ("1" => "A", "2" => "B", "3" => "C"); if (&search()) {   last;  } else {   &error("一致しません"); } exit; #---------------------------------- sub search {  foreach $key(keys %hash) {   if ($key =~ /$value/) {    print "--$hash{$key}\n";   }  } } #---------------------------------- sub error {  print "error $_[0]\n"; } 結果は、 --A error 一致しません でした。 $value をキー以外にするとちゃんとエラーになるんですよ。 いい方法はないでしょうか?

    • ベストアンサー
    • Perl
  • PHP内、ボタン押下と同時にリロード処理がしたい。

    PHP内、ボタン押下と同時にリロード処理がしたい。 宜しくお願いします。 画像をアルバム表示させるシステムを作っています。これにアップ済み画像を入れ替える処理を加えようとしています。 入替え処理の際、同時にページ再呼込みを行わせたいのですが、下記のJavaScriptで行わせると処理ができません。 処理は、PHP(クエリー)処理後に行うページ更新処理をJavaScriptni預けています。 フォームのセレクトボックスA,Bがあり、データA,Bが同じ時はアラートを出して処理を抜ける。データA,Bが違う時はページをリロードさせる。という処理です。 }else{ location.reload(); の処理を外せばデータ処理はできるのですが、この処理を入れているとクエリー処理が進まなくなります。 ご指摘や参考サイト、参考書籍だけでも結構です。ご教授いただければ幸いです。 --ソース・ここから---> <script language="JavaScript"> function check(){ a = document.formA.dataA.value; b = document.formA.dataB.value; if(a == b){ alert("処理エラー"); break; }else{ location.reload(); } </script>

    • ベストアンサー
    • PHP
  • JavaScriptでとても簡単なことだと思うのですが…

    どういう風に検索かければ言いかわかりませんでした。 フレーム1と2に分けて、フレーム1でボタンを押すとフレーム2のテキストボックスの中に文字を入力する。という物を作っています。 下記はフレーム1の内容の一部です。本当に簡単な質問だとおもいます。 <frame> <input type="button" value="ボタン1"onclick="window.parent.frame2.document.getElementById('txt1').value='おはようございます。'"> </frame> <frame> <input type="button" value="ボタン2"onclick="window.parent.frame2.document.getElementById('txt2').value='おやすみなさい。'"> </frame> この場合ボタンが二つ表示されるのですが、ここをボタンひとつでこの二つの処理を同時に実行させたいのです。 お力お貸しください。

  • ブラウザごとのJavaScriptの動き

    お世話になります。 IEの脆弱性問題に絡んで、他のブラウザでシステムの動きを調査することになりました。 (システム的にはIE限定で提供されています) で、日付(YYYY/MM/DD)をあるhidden項目にセットしているのですが cgiアプリでその日付を取得してチェックしているところで 「日付のフォーマットエラー」になってしまいます。 JavaScriptファイルに、 正しく取得できているかalertを入れてみました。 IEでは alert("1. " + parent.document.form1.HIZUKE.value) ; alert("2. " + document.form2.DATE.value) ; ↓ 1. 2014/04/30 2. 2014/04/30 firefox、operaでは ↓ 1. 114/04/30 2. 114/04/30 と表示されました。 parseInt、 toString() の関連と思われるのですが 対処方法がわかりません。 また、chromeでは このエラーのせいなのか、parentのフレームの内容が表示されません。 ※parentの内容は、親フレームのonload処理で表示しています。 ※全てcgiアプリでボタンクリックによる動的な表示です。 以前、firefoxなどはJavaScriptは動かないと聞いた事ともあるような気がしますが、 IEと他のブラウザではJavaScriptの動きは違うのでしょうか? またそれが提示されているサイトなどあるのでしょうか? よろしくお願いします。

  • 別フレームのフォームへの入力で

    フレーム1(f1)のボタンを押すとフレーム2(f2)のテキストボックス(t1)に文章を入力するようにしたいのですが、 フレーム2のフォームに名前がついている時は(フォーム名はform1)、 parent.f2.form1.t1.value = "test"; で動作したのですが、フォームに名前がない場合に、 parent.f2.forms[0].t1.value = "test"; とした場合、「'parent.f2.forms.0'はNULLまたはオブジェクトではありません」とエラーが出てしまいます。 これを解消したいのですが、エラーの原因がわかりません。 教えてください。 よろしくお願いしますm(_ _)m

  • 親ウィンドウから子ウィンドウのテキストボックスに。。。

    おはようございます。 困っています。 AというウィンドウにてJavaScriptから新しく開いたBという子ウィンドウにある document.myForm.textbox.value に任意も文字列「あああ」と表示させたいとするとどう書けばいいでしょうか? フレームであれば、parent.headarea.~をつければいけますが・・・。 Bウィンドウは「win1」というウィンドウです。 BにJavaScriptを書くのではなく、開いたAに書きたいのですが。。。 宜しくお願い致します。

  • フレーム間での値の受け渡し

    上下にフレーム分割された検索画面を作っているのですが、上のフレームで検索条件を入力して、その入力項目を表示したまま下のフレームに検索結果を表示するというものを作りたいのですが、値の受け渡し方法が分かりません。 parent.[上のフレーム名].document.[フォーム名].[テキストボックス名].valueを使うとできるらしいのですが、具体的な使用方法が分かりません。上のフレームで入力された値を下のフレームで変数に入れて使いたいので、parent.~が使えるかどうかもよく分かっていません。 回答よろしくお願いします。

  • 一括で入力のチェックをしたいのです!

    どなたか教えてください・・・ フツー入力チェックを行う場合 <SCRIPT language="JavaScript"> <!-- function Check(){ if(document.myform.Name.value==""){ alert("名前を入力してください。"); return false; } if(document.myform.Email.value==""){ alert("Eメールアドレスを入力してください。"); return false; } if(document.myform.Email.value.indexOf("@")<=0){ alert("Eメールアドレスが正しくありません。"); return false; } if(document.myform.Comment.value==""){ alert("コメントを入力してください。"); return false; } return true; } // --> </SCRIPT> こんなカンジで各フォーム毎にチェックを行い メッセージを出したりすると思うのですが、 フォーム数が多いため、入力のチェックを 一括で行いたいのですが・・・ JavaScriptを始めて間もないため とんちんかんな質問をしている様でしたら すみません。 どなたか入力チェックを一括で出来る方法を 教えて頂けないでしょうか・・・ お願いします。

専門家に質問してみよう