• 締切済み

Nullまたはオブジェクトのエラーが出ます

はじめまして。JavaScript初心者のものです。 下記URLのプログラムでjsファイルを外だしにして使おうとしましたら「'calendarwin.document'はNullまたはオブジェクトではありません。」とエラーが出てしまい、まだ初心者ゆえ修正方法がわからず困っております。 http://game.gr.jp/js-ml/samples/199912/calendar/calendar.htm 解決方法を教えてください。 OSはWindows XPでブラウザはIE6のSP2です。 よろしくお願いします。

みんなの回答

回答No.5

>もし、この子画面を表示したとき、後ろの画面を触らせないようにするには、openのところをshowModalDialogにするだけでよろしいのでしょうか? 試してみたけど,元からやんない方が無難。 ★W3Cの規格にないからIE専門になってしまうし、if文でわざわざ分岐して あげる必要が出てくる。 ★IE7でやってみたところ、showModalDialogの第一引数に空文字列を与えたら「引数が無効です」となってしまった。また第三引数もdialogHeight等を用いるようで,変数paraが使い回しできない可能性がある ★モーダルウィンドウは閉じるまで処理がそこで止まってしまうため, calendarwin.document.write(ddata)が実行されず,何も表示されないウィンドウが開く可能性がある。 というか,閉じた段階でcalendarwinに代入される値はNullになるため, calendarwin.document.write(ddata)で同じエラーを引き起こすことになってしまう ★なお,カレンダーウィンドウを開いた状態でリンクをクリックしても同じウィンドウ名を持つものは二つ生成されることがなかった

GGGOoOGo
質問者

補足

ご回答ありがとうございます。 if文で分岐とはどうされるのですか? showModalDialogで行うには難しそうですね。 showModalDialog以外で呼び出し元画面を触らせなくする方法ってありますか?

回答No.4

あと80行目付近も・・・ひょっとしたら出るかも x=window.screenX+30 y=window.screenY-180

GGGOoOGo
質問者

補足

ANo3の通りに実行しましたら、ちゃんと表示しました。 ありがとうございました。 もし、この子画面を表示したとき、後ろの画面を触らせないようにするには、openのところをshowModalDialogにするだけでよろしいのでしょうか? たびたびの質問で申し訳ございません。

回答No.3

38 39行目の if(!arguments[1])arg1=0 if(!Moz) if(arguments[1]||arguments[1]==0)winflg=0 の3行を消すと?存在意義が全く理解できないので。

GGGOoOGo
質問者

お礼

この通りにしましたら、きちんと表示されました。 ありがとうございます。

回答No.2

ああ、そういうことか。このページが動かないんじゃないのね。 サンプルが動作しないのね。 javascriptのソースの32行目を function wrtCalendar(oj,arg1,arg2){ から function wrtCalendar(oj,arg1){ にして HTMLを <html> <head> <script src="calendar.js" language="JavaScript"></script> </head> <body> <form name="f1"> 受付日:<input name="e1" type="text" onFocus="wrtCalendar(this,0)"><br> 登録日:<input name="e2" type="text" onFocus="wrtCalendar(this,0)"><br> 入金日:<input name="e3" type="text" onFocus="wrtCalendar(this,0)"><br> <br><br> 作業日:<input name="e4" type="text"> <input type="button" value="入力用カレンダー" onclick="wrtCalendar(e4,0)"> ボタンクリックで表示 <br><br> <input type="image" src="./cal1.gif" value="入力用カレンダー" onclick="wrtCalendar(e5,0);return false"> <input name="e5" type="text"> </form> </body> としたらどうかな?

GGGOoOGo
質問者

補足

ご回答ありがとうございます。 HTMLを上記で書かれているものを使用させて頂き、jsファイルの32行目以降を以下のように修正しました。 function wrtCalendar(oj,arg1){ こうしましたところ、 ライン221 文字3 エラー'calendarwin.document'はNullまたはオブジェクトではありません というエラーが発生しました。 jsファイルは、サイトのリンクの部分のをそのまま持ってきて、書かれていた32行目のみ変更しております。 どこか間違えておりますでしょうか? ご教授ください。 お願いします。

回答No.1

もしかして既に解決してる? IE6 on WinXP SP2 For Evaluation(VPC Image) で確認したが再現しなかったので。(ただし,日本語リソースが無いので正しい文字コードで読めてるとは限らない)

GGGOoOGo
質問者

補足

書き込みありがとうございます。 まだ解決しておりません。 HTMLサンプルのところをテキストに貼り付けて、~.htmlで保存してcalendar.jsはそのまま使って実行しましたが上記エラーがでてしまいました。 どこか一部書き換えられて実行されたのでしょうか? よろしくお願いします。

関連するQ&A