- PR -

JavaScriptでオブジェクトを定義したい

1
投稿者投稿内容
さき@神奈川
会議室デビュー日: 2004/03/31
投稿数: 9
投稿日時: 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/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2004-04-13 15:03
環境はIE限定でしょうか?
ネスケなら無理だと思ったのですが、
IEなら「try〜catch」でエラーをハンドリングできます。
それが無理なら、関数側でlocationを参照して
hoge_stringを参照するか
判断するのがいいような気がします。

#ここの掲示板はJavaScriptの質問もOKなんですか?
TomScissors
ベテラン
会議室デビュー日: 2003/06/05
投稿数: 79
投稿日時: 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 ]
ほむら
ぬし
会議室デビュー日: 2003/02/28
投稿数: 583
お住まい・勤務地: 東京都
投稿日時: 2004-04-13 22:27
ども、ほむらです。
書き捨てで〜す(笑
-------
引用:

hoge.jsの中の関数内で
2の画面に遷移させた時に画面に現れるエレメント"hoge_string"を使用したい時、
1の画面内ではまだ現れていない為に、"オブジェクトではありません"というエラーが発生してしまいます。


なんで、"hoge_string"を1の画面で使わなければならないのかとか、
そもそも関数を別にすればいいだけじゃないのか?とか

やりたいことやっていることが何も見えてこないので回答のしようもないのではないかなと思います。

#ちなみに、name属性を使用しているのならdocument.getElementsByName()という手もある
#でも、たぶんかなりイレギュラなやり方だとおもってみたりして。。。

#JavaScriptだと。どちらかといえば.NETの方とかCafe?
1

スキルアップ/キャリアアップ(JOB@IT)