重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

こんばんは。いつも利用させていただいてます。また皆さんのお知恵をお貸りに来ました。

親ウィンドウのテーブルのセルの背景色が白である場合、処理をさせるため以下のコードを書きました。

if(window.opener.document.getElementById(idNameS).style.backgroundColor == "white"){
myFlg=1;
}
これを実行するとFirebugで、
window.opener.document.getElementById(idNameS) is null
というエラーが出てしまいます。ちなみに実行時のセルの背景色は全て白です。

いったい何がnullなのでしょうか。それからどのようにしたらエラーが出ずにうまく動くのでしょうか。
ご教授よろしく願いします。

A 回答 (4件)

No3追記です。


説明解りにくいかもしれないので、もう少し詳しくします。
HTMLにでもjavascriptでも、処理をしているのはブラウザです。
使用ブラウザがHTMLで"white"とあるのを、一旦null(空)に変換して、
値がなかった時と同じ処理(関数)へ
飛ばしているのではないかと思ったのです。
処理はブラウザの種類に一任されますから、
whiteをwhiteとしてあつかうブラウザも存在するでしょう。
しかし、値がnullの場合は必ず白になるはずですから、
whiteとnullの処理を同じにしておく必要があると思います。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
No.2の方の捕捉に書かせて頂きましたが、実は緑の時も同じエラーが出てしまうのです↓↓情報不足ですみませんでした。

しかし、ご指摘いただいた可能性も十分考えられますね。コードを修正します。参考になるご意見ありがとうございました。

お礼日時:2008/07/26 14:22

値がnull(空)場合に、ブラウザの描画で、


白く表示しているだけではないのでしょうか。
ブラウザには自動翻訳機能があって、
HTMLの記述が正確でなくても、エラーの起こらない表示をします。
バックグラウンドの色指定がないとき表示されるのは白い背景です。
javascriptには、そういった判別機能はないと思います。
nullの場合も myFlg=1; になる処理を記述すれば
いいのではないでしょうか。
要するに
if(window.opener.document.getElementById(idNameS).style.backgroundColor == null){myFlg=1;}
の一行を加えればいいと思います。(もちろん&&で拡張もOK)
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
お礼はNo.4のご回答にまとめさせていただきました。

お礼日時:2008/07/26 14:23

nullなのでオブジェクトは存在していて、値がnullなのではと想像されます。


null値でも比較して、結果が偽となりそうな気もしますが・・・
idNameSの対象が何か不明ですが、idNameSのbackgroundColorが親ウィンドウのHTMLで明示的に指示されていないので、未定義(値がない)ということではないでしょうか?
表示にはbodyのバックグラウンドが踏襲されていたりとか・・・

=="white"の比較も、HTMLで#FFFFFFと指定をしていたりすると、違う値として判断される可能性がありますので、確認しておいたほうが良いかも。(すみませんが、想像です。確認はしていません。)

この回答への補足

実は白と緑でセルに色をつけて白の部分のid名だけを取得するということをやっていて、id名の取得は出来ているのです。
つまりやりたいことは出来ているのですが、このエラーのせいで処理がとまってしまうという状態です。
id名や色の指定は出来ているようです。

補足日時:2008/07/26 13:49
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

ご指摘いただいた色のコードについてですが、今一度調べてみたところHTMLでもwhiteと記述してありましたのでその可能性もなさそうです。

補足に情報を書きますのでそちらもご覧いただけると幸いです。

お礼日時:2008/07/25 14:26

idNameSでしめしているidが間違っているのでは?


(たとえば'idNameS'だったり・・・)
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。お礼が遅くなり申し訳ありません。

ご指摘いただいたid名の部分は間違いないようです。

お礼日時:2008/07/25 00:43

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