• ベストアンサー

エラー回避の方法

単純なことになるかもしれませんが、エラーが回避できずに困っています。 ソース(抜粋・パスはゼッタイパスです。) <TD><IMG src=イメージ.gif onclick="window.open("~.cgi?code=$ID", graph, 'width=400,height=400,');" style=cursor:hand><BR></TD> エラーログ ランタイムエラーが発生しました。 デバッグしますか? 行** エラー:構文エラー 私自身JavaScript勉強中のため、なぜこうなるのか?どう回避(というかソースの改善?)すればいいのか?判らずにいます。 御指導おねがいします。

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

  • ベストアンサー
  • Kizz
  • ベストアンサー率47% (30/63)
回答No.3

はじめまして、macky0225さん。 このコードでいうなら2個所直しが必要ですね。  1.「"~.cgi?code=$ID"」を''囲み、つまり「'~.cgi?code=$ID'」  2.「graph」を''囲みに、つまり「'graph'」 参考)  ・HTMLタグの属性は、""囲みや''囲み、場合によっては囲みなしでもOKです。   ※属性と属性の間にはスペースで区切りは必要ですが。  ・ただし、onClick()などのイベントハンドラ定義の場合は、属性の値を囲む   大囲いの他に内部で文字列部分を囲いたい場合があるかと思います(今回のような)。   この場合は、大囲いを""にし、内部の文字列部の囲いを''囲いにします。   ※大囲いを''で内部囲いも''では構文エラーになります。    つまり、""で中も""と、''で中も''の場合にエラーとなるのは、2つめの    "や'の位置で属性値の指定が終わりとブラウザは解釈するので、その位置以降が    不明な指定=構文エラーとなってしまうのです。 がんばってくださいね。

macky0225
質問者

お礼

なるほど~、先の方々へのお礼でも書きましたが、囲い・括りという概念が頭に無かったため起こるべくして起こったエラーのようですね(^^ゞ 特に参考として書いていただいている部分、ホントに勉強になりました(^o^)丿 有難う御座いました♪

その他の回答 (2)

  • sorarisp
  • ベストアンサー率58% (7/12)
回答No.2

><TD><IMG src=イメージ.gif onclick="window.open("~.cgi?code=$ID", graph, 'width=400,height=400,');" style=cursor:hand><BR></TD> graphは変数ですか?? リテラルの文字列であれば、["]若しくは[']で括る必要があります。 それと、"~.cgi?code=$ID"ですが、既にonclickで["]を使用しているので[']で括ります。 <IMG src="イメージ.gif" onclick="window.open('~.cgi?code=$ID', 'graph', 'width=400,height=400,');" こういう書き方も有ります。 <A href="~.cgi?code=$ID" border="0" target="_blank"><IMG src="イメージ.gif" style=cursor:hand></A> 参考までに。

macky0225
質問者

お礼

わざわざ正しい書き方まで記載して頂き有難う御座いますm(__)m 先の方へのお礼でも書きましたが、""若しくは''で括るということは全然判らなかったので大変勉強になりました。

  • tyom77
  • ベストアンサー率57% (68/119)
回答No.1

macky0225さん、こんにちは。 graphの部分を'graph'もしくは"graph"にすれば、直ると思います。 要は前後の構文のように""か''で囲まないといけないということです。

macky0225
質問者

お礼

なるほど、''囲いか""囲いが必要ということですね 勉強不足を露呈してしまいましたね(^^ゞ 有難う御座いました。

関連するQ&A