• 締切済み

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

  • Nullまたはオブジェクトではありません。の対策

    Javascriptで以下のエラーが発生します。 'エラー: document.test_form.test_element.value'はNullまたはオブジェクトではありません。 この場合、ソースでは alert(document.test_form.test_element.value); としているのですが、以下のようにnullを使って分岐させるのが Javascriptの王道でしょうか? if (null != document.test_form.test_element){ alert(document.test_form.test_element.value); } よろしくお願いいたします。

  • カレンダーの指定日付から常に今日の日付まで。について

    お世話になります。 http://game.gr.jp/js-ml/samples/199912/calendar/cal2.htm のカレンダーの、下記箇所 window.xDaysAfter 何日目以降を有効にするか? 注意 : この機能は、入力場所毎に有効日を変更できるようにするために、近い将来引数へ変更するかもしれません ( 無効の日はリンクがなくなり入力 できなくなります ) 例1 : window.xDaysAfter = 3 // (3日目以降が有効) 例2 : window.xDaysAfter = -10 // (10日前以降が有効) 例3 : window.xDaysAfter = null // (すべての日が有効) 例4 : <script> window.xDaysAfter = 7 // (7日目以降が有効) </script> <script src="calendarlay3.js" language="JavaScript"></script> 設定しなければ自動的にnull で、指定した過去の日付から、常に今日の日付までのリンクが有効。。としたい場合、 どこをどのようにすればよいのでしょう。お手数ですがどなたかご教授頂けませんでしょうか。

  • Null またはオブジェクトではありませんのエラー

    HTML部で <FORM NAME="frm1" METHOD="post" ACTION="xxx.html">  <INPUT TYPE="hidden" NAME="txt1"> </FORM> javascriptで document.frm1.txt1.value = "hoge"; document.frm1.submit(); のように記述しています。 FireFoxブラウザでは期待通りの動きをするのですが、 IE6では「document.frm1.txt1はNullまたはオブジェクトではありません」 とエラーが出てしまい、画面遷移しません。 因みにページはフレームを利用しており、 フォームや画面遷移はメインフレームでしか使っていないので、 フレーム名も特につけておりませんし、 targetの記述も使用しておりません。 そこらへんに原因があるのでしょうか。 それにしてもFireFoxでは可、IEではエラー というのも解せないです。 どなたか分かる方いらっしゃいましたら ご教示願います。

  • 「nullまたはオブジェクトではありません」というエラーが出ます。

    こんにちは、IE7、VISTAで試しています。 エラーもなく動いたのですが、 sClientXとsClientYの値をフォームメールでデータ送信したくて clientX=<input type="text" id=sClientX><br> clientY=<input type="text" id=sClientY><br> という部分を<form>内に入れると 「sClientXはnullまたはオブジェクトではありません」 というエラーが出ます。 エラーの原因はなんでしょうか? <HTML> <HEAD> <SCRIPT language="JavaScript"> <!-- var sample; var sClientX; var sClientY; var target; var isDrag=0; function document_onmousedown(){ isDrag=1; target=event.srcElement;} function document_onmousemove(){ if( isDrag ){ target.style.top=event.clientY-8; target.style.left=event.clientX-8;} } function document_onmouseup(){ isDrag=0; sClientX.value = document.getElementById('sample').style.left; sClientY.value = document.getElementById('sample').style.top; } document.onmouseup = fOnmousemove; function fOnmousemove() { } //--> </SCRIPT> </HEAD> <BODY onmousemove="document_onmousemove()" onmousedown= "document_onmousedown()" onmouseup="document_onmouseup()"> <DIV style="position:absolute" id=sample> このオブジェクトが移動します </DIV> <DIV id=text1 style="position:absolute;font-size:24px; cursor:hand"> </DIV> <form> clientX=<input type="text" id=sClientX><br> clientY=<input type="text" id=sClientY><br> </form> </BODY> </HTML>

  • NULLまたはオブジェクトではありません エラー

    BP・ヤフー・Goo・他サイトで検索し、色々と試して見ましたが、解決できなかったため、どなたかお力を貸していただけるとありがたいです。 社内Webサイトを開く際、開けるページもありますが、 いくつかのリンクが開けません。社内でも他の方は開けますが、自分だけ開くことができません。 自分以外の人は問題なく使えていても、Webサイト側の問題ということがあるのでしょうか。 エラーメッセージは エラー:’document.all.save msg’NULLまたはオブジェクトではありません 他の検索サイトなどで調べた方法は全て試してみました。 OSは Windows XP です。 ・IE8を使う ・Firefox最新版を使う ・キャッシュ・クッキー・テンポラリーファイルの削除 ・JAVA APPLET の選択・非選択 解決方法または、原因と思われるようなことがありましたら教えてください。 よろしくお願い致します。

  • NULLまたはオブジェクトではありませんのエラーについて

    いつも大変勉強させていただいています。初心者です。 さて、現在自動計算を作成中ですが、 現在、オプションメニューで計算させる事には成功したのですが、出来ればラジオボタンで選択したものを計算できるようにと考えて色々試したのですが、上手く設定が出来ません。 皆さんのお知恵を拝借できないでしょうか? 宜しくお願いいたします <<外部リンクファイルです>> function KeiCalc(KC) { //オーダー見積計算式 function KeiCalc(KC) { var item1,no1; //表生地 item1 = document.Calc.X1.options[document.Calc.X1.selectedIndex].value; if(item1 == 1){Z1 = 8000} if(item1 == 2){Z1 = 10000} document.Calc.Z1.value =Z1; no1 = item1; //裏生地 item2 = document.Calc.X2.options[document.Calc.X2.selectedIndex].value; if(item2 == 1){Z2 = 8000} if(item2 == 2){Z2 = 10000} document.Calc.Z2.value =Z2; no2 = item2; (省略) //合計計算 document.Calc.PRC.value = Math.round((eval(document.Calc.Z1.value)+eval(document.Calc.Z2.value)+(eval(document.Calc.Z3.value)*eval(Z6))+eval(document.Calc.Z4.value))*eval(Z5)); (省略) } ホームページのフォームの内容 【この場合は動作するのですが、ラジオボタンに変更すると動作しません】 <SELECT name="X1" onchange="KeiCalc(this.form)"> <OPTION value="1">ノヴェル・ピンク</OPTION> <OPTION value="2">ノヴェル・ブル</OPTION></SELECT> 途中のフォームの内容 <INPUT type="radio" name="X1" value="1">ノヴェル <INPUT type="radio" name="X1" value="2">ツインベリー これで動作させると以下のようなエラーが出てしまいます document.Calc.X1.optionsはNULLまたはオブジェクトではありません・・・と 宜しくお願いいたします

  • javaScript Nullまたはオブジェクトではありません エラー

    javaScriptは詳しくなく、サンプルプログラムを 参考にさせていただきながらテストをしています。 現在javaScriptで、タブ切り替えで表示内容を変更し、 表示されたフォームに、data.textの内容を表示するという テストをしています。 [コード] <html> <head> <meta http-equiv="content-type" content="text/html;charset=shift_jis"> <title></title> <script type="text/javascript"><!-- function loadTextFile() { httpObj = new ActiveXObject("Microsoft.XMLHTTP"); httpObj.onreadystatechange = statusCheck; httpObj.open("GET","data.txt",true); httpObj.send(null); } function statusCheck() { if ((httpObj.readyState == 4) && (httpObj.status == 200)) { displayData(); } } function displayData() { document.ajaxForm.result.value = httpObj.responseText; } // --></script> </head> <body> 省略(タブの切り替え設定) <div style="display:none" id="NAME11"> test1 </div> <div style="display:none" id="NAME22"> <form name="ajaxForm"> <input name="button" type="button" onClick="loadTextFile()" value="読み込み"> <textarea name="result" cols="40" rows="5"></textarea> </form> </div> <div style="display:none" id="NAME33"> test3 </div> </body> </html> ------------------------ 上記を実行すると "document.ajaxForm.resultは Nullまたはオブジェクトではありません" というエラーになってしまいます。 よろしくお願いします。

  • getElementByIdの戻り値がnullになります。

    getElementByIdでdivタグのオブジェクトを取得したいのですが、nullとなってしまいます。 以下のコードのどこがいけないのでしょうか。 --- <div id='a'></div> <script language="javascript">// <!-- var a_ = document.getElementById('a'); document.write(a_); // --></script> ---

  • Windows/IEのみ「Null または オブジェクトではありません」のエラー

    初めて質問します。 よろしくお願いします。 画像を一度クリックするとその画像を別の画像に置き換え、 もう一度クリックすると元に戻る、という関数を作りたいと考えています。 Macを含め大体のブラウザで実現できたのですが、Windows/IEでのみ 「document[...]はNULLまたはオブジェクトではありません」 というエラーが出て実行できません。 実例: http://www.cloudandwater.jp/ 以下ソースです。 // サムネイルをその場でズーム var clicked = new Array(); var oldpath = new Array(); function zoom(path, thumb, name) { if (typeof(clicked[name]) == 'undefined') { document[name].src = path; oldpath[name] = thumb; clicked[name] = true; } else { document[name].src = oldpath[name]; delete clicked[name]; } } // 呼び出し例 <img src="thumbnail.jpg" name="1" onClick="javascript:zoom('large.jpg', this.src, this.name)" /> よろしければ原因と解決法をご教授ください。

  • showModalDialogで開いた画面をonChangeでリロードするには・・・

    初めて投稿します。今、showModalDialogで困っています。 まず画面上のボタンからjsファイル内のJavaScriptのメソッドを呼び出し、 その中でshowModalDialogを使って開いた小さな窓にカレンダーを表示します。 このカレンダー画面には月を選択するセレクトボックスがあり、 このセレクトボックスで月を変更した際にカレンダーをリロードする 処理を作ろうとしています。しかしこのリロードで「オブジェクトを 指定してください」というエラーが出てしまいます。 何がいけないのでしょうか・・・? 処理内容はこんな感じ・・・ 1.jsファイル内のJavaScriptメソッドのshowModalDialog呼び出し部分 window.showModalDialog("modal.html"); 2.呼び出されたmodal.html内ではbodyタグを以下のようにする <body onLoad="javascript:loadPage();"> 3.2で呼び出されたmodal.html内のJavaScript、loadPage()はこんな感じ writePage()は1のjsファイル内の別のメソッド function loadPage() { writePage(); } 4.3で呼び出されたjsファイル内のJavaScript、writePage()はこんな感じ function writePage() { this.document.open(); this.document.writeln("Calendar"); this.document.writeln("<select onChange=\"javascript:loadPage();\">"); this.document.writeln("<option>1月"); this.document.writeln("<option>2月"); this.document.writeln("</select>"); }

専門家に質問してみよう