- - PR -
JavaScriptでオブジェクトを定義したい
1
| 投稿者 | 投稿内容 | ||||
|---|---|---|---|---|---|
|
投稿日時: 2004-04-13 14:43
動的なページを書き出す中でJavaScriptを使用しています。
画面は以下のように遷移させています。 1.メニューページ 2.サブミットを行うためのページ 1と2のFORM内で同じ"hoge.js"を以下のように呼び出しファイルとして設定しています。 <SCRIPT LANGUAGE="JavaScript" SRC="hoge.js"></SCRIPT> hoge.jsの中の関数内で 2の画面に遷移させた時に画面に現れるエレメント"hoge_string"を使用したい時、 1の画面内ではまだ現れていない為に、"オブジェクトではありません"というエラーが発生してしまいます。 2の画面では <input type="hidden" name="hoge_string" value=""> というように画面を書いています。 1の画面でエラーが発生しないようにする方法はないでしょうか? 1の画面には2で書いているような<input type="hidden" name="hoge_string" value=""> を書きたくありません。 よろしくお願いします。 | ||||
|
投稿日時: 2004-04-13 15:03
環境はIE限定でしょうか?
ネスケなら無理だと思ったのですが、 IEなら「try〜catch」でエラーをハンドリングできます。 それが無理なら、関数側でlocationを参照して hoge_stringを参照するか 判断するのがいいような気がします。 #ここの掲示板はJavaScriptの質問もOKなんですか? | ||||
|
投稿日時: 2004-04-13 15:21
ブラウザやバージョンで動作が違いますが、
以下のような方法があるかと思います。 frmTest:FORMの名前 ・1つめ if (typeof(frmTest.hoge_string) != "undefined") { 処理 } ・2つめ if (frmTest.hoge_string) { 処理 } ・3つめ try { 処理 } catch (e) { //エラーを無視 } #厳密にはJavaScriptはNGじゃないんですかね。(全く別物ですし) #修正:分かりやすいように番号をつけました。 #環境や動作を検証の上、適当なものを使用してください。 [ メッセージ編集済み 編集者: TomScissors 編集日時 2004-04-13 15:23 ] | ||||
|
投稿日時: 2004-04-13 22:27
ども、ほむらです。
書き捨てで〜す(笑 -------
なんで、"hoge_string"を1の画面で使わなければならないのかとか、 そもそも関数を別にすればいいだけじゃないのか?とか やりたいことやっていることが何も見えてこないので回答のしようもないのではないかなと思います。 #ちなみに、name属性を使用しているのならdocument.getElementsByName()という手もある #でも、たぶんかなりイレギュラなやり方だとおもってみたりして。。。 #JavaScriptだと。どちらかといえば.NETの方とかCafe? | ||||
1
