【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集

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

A 回答 (5件)

もしかして既に解決してる?



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

この回答への補足

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

補足日時:2007/04/09 22:59
    • good
    • 0

ああ、そういうことか。

このページが動かないんじゃないのね。
サンプルが動作しないのね。

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>

としたらどうかな?

この回答への補足

ご回答ありがとうございます。
HTMLを上記で書かれているものを使用させて頂き、jsファイルの32行目以降を以下のように修正しました。
function wrtCalendar(oj,arg1){

こうしましたところ、
ライン221
文字3
エラー'calendarwin.document'はNullまたはオブジェクトではありません
というエラーが発生しました。
jsファイルは、サイトのリンクの部分のをそのまま持ってきて、書かれていた32行目のみ変更しております。
どこか間違えておりますでしょうか?
ご教授ください。
お願いします。

補足日時:2007/04/11 00:39
    • good
    • 0

38


39行目の

if(!arguments[1])arg1=0
if(!Moz)
if(arguments[1]||arguments[1]==0)winflg=0

の3行を消すと?存在意義が全く理解できないので。
    • good
    • 0
この回答へのお礼

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

お礼日時:2007/04/11 23:21

あと80行目付近も・・・ひょっとしたら出るかも


x=window.screenX+30
y=window.screenY-180

この回答への補足

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

補足日時:2007/04/11 23:15
    • good
    • 0

>もし、この子画面を表示したとき、後ろの画面を触らせないようにするには、openのところをshowModalDialogにするだけでよろしいのでしょうか?



試してみたけど,元からやんない方が無難。
★W3Cの規格にないからIE専門になってしまうし、if文でわざわざ分岐して
あげる必要が出てくる。
★IE7でやってみたところ、showModalDialogの第一引数に空文字列を与えたら「引数が無効です」となってしまった。また第三引数もdialogHeight等を用いるようで,変数paraが使い回しできない可能性がある
★モーダルウィンドウは閉じるまで処理がそこで止まってしまうため,
calendarwin.document.write(ddata)が実行されず,何も表示されないウィンドウが開く可能性がある。

というか,閉じた段階でcalendarwinに代入される値はNullになるため,
calendarwin.document.write(ddata)で同じエラーを引き起こすことになってしまう

★なお,カレンダーウィンドウを開いた状態でリンクをクリックしても同じウィンドウ名を持つものは二つ生成されることがなかった

この回答への補足

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

補足日時:2007/04/12 22:56
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!