1

このコード行をタグでレンダリングして<pre>、画面に通常のテキストとして表示します。

<img src="http://maps.googleapis.com/maps/api/staticmap?zoom=7&size=700x540&sensor=false$center=London, England&markers=London, England|Leicester, England|">

ただし、複数のブラウザで次のように誤ってレンダリングされています。

<img src="http://maps.googleapis.com/maps/api/staticmap?zoom=7&size=700x540&sensor=false¢er=London, England&markers=London, England|Leicester, England|">

セント記号のエスケープコードはそうでは&cent;ないので&cent、なぜこれが起こっているのかわかりません。それを防ぐ方法はないようです。誰か助けてもらえますか?

また、私のDoctype:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

違いがある場合は、このコード行がJavascriptのinnerHTMLメソッドによってドキュメントに追加されています。

4

1 に答える 1

1

何かが a にある<pre>からといって、それをエスケープする必要がないというわけではありません (ここでは doctype に違いはありません)。画面に表示する場合は、 のインスタンスで&エンティティを使用する必要があります。場合によってはそれなしで済むこともありますが、それはブラウザーが寛容であるためです。それを利用すべきではありません。ブラウザは、エンティティを認識すると、セミコロンがなくてもエンティティに変換しようとする場合があります (これも寛大です)。&amp;&

全体(ソース)は次のようになります。

<pre>&lt;img src=&quot;http://maps.googleapis.com/maps/api/staticmap?zoom=7&amp;size=700x540&amp;sensor=false&amp;center=London, England&amp;markers=London, England|Leicester, England|&quot;&gt;</pre>

ちなみに、これは のような属性値にも当てはまりますhref。「怠け者」で、クエリ文字列のアンパサンドをエスケープしないのはよくあることですが、実際にはエスケープする必要があります。

于 2012-03-28T13:42:05.520 に答える