• ベストアンサー

ブラウザごとに違うとは思いますが・・・

今、ウェブ仕様のソフトウェアを作っているのですが、ほぼ完成したのでブラウザごとに動くか試験をすることにしました。 とりあえず、Firefox、Netscape、Lunascape、Operaをダウンロード、ソフトウェアを実行してみました。 結果は、Lunascape以外は途中で実行されないというものでした。 具体的に言いますと、このソフトウェアでは  0.フレームAでカテゴリを選択、フレームBに表示  1.フレームBにて、自分に当てはまる項目をチェックボックスでチェック  2.それぞれに割り当てられている数値の合計をフレームAに送信  3.作業がすべて終了後、フレームBに『結果』を表示  4.フレームAにある数値をフレームBへ送信  5.『結果』のプログラムにより、数値を加工・表示 というもので、今回問題になっているのは4、5です。 開発言語はHTMLとJavaScript、開発で使用したブラウザはIEです。 プログラムの問題というより、ブラウザの設定に問題があると思います (少なくとも2はうまく行っているので)。 どうかよろしくお願いします。

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

  • ベストアンサー
noname#23734
noname#23734
回答No.6

訂正です onLoadだからdocument.body.formじゃなくてwindow.formですよね。 だから引数をthis.document.formにすれば良いじゃないですかね。

noname#33727
質問者

お礼

ありがとうございます。動きました!

その他の回答 (5)

noname#23734
noname#23734
回答No.5

良く解りませんが、 <body onLoad="check(this.form)"> ここのthis.formっておかしくないですか? document.body.form? 普通はdocument.formじゃないでしょうか。 IEってこれで良いのでしょうかね。 alert(tf)でundefinedを確認できませんかね。

  • MAN_MA_RUI
  • ベストアンサー率41% (426/1024)
回答No.4

訂正: ○また、具体的な例を挙げるならばMimeタイプ取得のオブジェクトではIEだけ非対応といったケースも時折見られます。 ×また、Mimeタイプ取得のオブジェクトではIEだけ非対応といったケースも時折見られます。

noname#33727
質問者

補足

少々遅くなってしまいましたが、以下が問題のプログラム(一部)です。 フレームA:main.html(固定)  <body><form name="form" method="post" target="フレームA" action="result.html"> <a href="select1.html" target="フレームB">春</a><input type="text" name="spring"> <a href="select2.html" target="フレームB">秋</a><input type="text" name="fall">  <input type="submit" value="計算"> </form></body> フレームB:select1.html(0~2、select2.htmlも同様) <head><script type= "text/javascript" language="JavaScript" src = "select.js"></script></head>  <body><form name="form" method="post" target="フレームA" action="main.html"> <input type="checkbox" name="a1">1月 <!--- ↑のようなものが数行つづくので省略 --->  <input type="submit" value="送信" onClick="count(this.form)"> </form></body> フレームB:select.js(select1.htmlのスクリプト)  function count(tf) { var total1 = 0; if( tf.a1.checked == 1 ) total += 1; <!--- 以下省略 ---> parent.フレームA.document.form.spring == total; } フレームB:result.html(結果画面) <head><script type= "text/javascript" language="JavaScript" src = "result.js"></script></head> <body onLoad="check(this.form)"><form name="form"> 春:<input type="text" name="spring"> 秋:<input type="text" name="fall"> 春-秋:<input type="text" name="minus"> </form></body> フレームB:result.js(結果画面のスクリプト)  function check(tf) { spring = parent.フレームA.document.form.spring.value; fall = parent.フレームB.document.form.fall.value; minus = spring - fall; tf.spring.value = spring; tf.fall.value = fall; tf.minus.value = minus; } ・・・という感じです(実際のものとは違いますが)。 申し訳ありませんが、よろしくお願いします。

  • MAN_MA_RUI
  • ベストアンサー率41% (426/1024)
回答No.3

IEだけ不具合を起こすと言うケースもあります。 例えば、外部スクリプト読み込みでページのエンコードとスクリプトファイルのエンコードが違うとIEではエラーが起きますが、他の環境ではエラーになりません。 また、Mimeタイプ取得のオブジェクトではIEだけ非対応といったケースも時折見られます。 …何が言いたいかと言うと、まぁ要はソースを見なければ分からない、と。

  • ron3
  • ベストアンサー率35% (7/20)
回答No.2

いまいち送信というのがわかってないのですが、 この送信は、BのフレームからPOSTして、Aのフレーム内容を書き直す という意味でしょうか?それともAのフレームのinputタグなりのフィールドに、値をセットするという意味でしょうか? とりあえず、No1の方もおっしゃってるとおり、javascriptとHTMLの該当箇所のソースを見せてください。

  • 345itati
  • ベストアンサー率48% (795/1639)
回答No.1

HTMLとjavascript使用、で、各ブラウザでjavascriptの使用が許可されている、そして同じPCで確認したのなら、ブラウザ側の問題というより、ソースの記述自体の問題の可能性の方が高いです。 Lunascapeで動いたのは、IEのエンジンをそのまま使用する形だからでしょう。(LunascapeはレンダリングエンジンはIEそのものなので、これでバグチェックをするのはあまり意味が無いと思います。。。 FirefoxやOperaには、javascriptの記述エラーを表示するエラーコンソールがありますが、そちらにはエラーは何も表示されていませんか? ソース(特にjavascript)を示して頂ければ、解決の糸口がつかめそうですが。

noname#33727
質問者

お礼

早速のご解答、ありがとうございます。 そうなんですか?てっきりセキュリティなどの面かと思いました。 エラーコンソールも知りませんでした。IEのように『スクリプトエラーごとに通知』があるのかと探しては見たんですが・・・。 今試したところ、HTML内でJavaScriptのfunctionに『this.form』を送信、functionないでは『tf』としたことに文句を言っているようなんですが・・・。 この様な変換は無効になってしまうんでしょうか?

noname#33727
質問者

補足

※お礼を書いた後の内容になります。 思い直し確認してみたところ、(質問内にあるソフトウェアの説明の)2のJavaScriptでも『this.form』→『tf』を使っていました。 どうしてこの様なことがおきてしまったんでしょう?

関連するQ&A