4

アンパサンドが含まれているメールアドレスを使用している場合、ユーザーは「お問い合わせ」リンクを使用して、アドレスが入力された新しいメッセージを開くことを望んでいます。通常はhrefを使用しますが、アンパサンドが原因でこれが機能しません。

これが私が今持っているものです:

<a href="mailto:L&D@gha.org.uk? subject=MessageTitle&amp;" 
        style="font-family: Verdana; font-size: large; font-weight: bold; color: #800000">#GHA Organisation Development</a>
4

3 に答える 3

8

&amp;プレーンの代わりに使用し&ます。href URLはHTML内にあるため、有効なHTMLになるには適切にエスケープする必要があります。

于 2010-04-06T10:45:15.557 に答える
4

実際、これはあいまいなアンパサンドではないため、提案された HTML を使用することは完全に有効です。現在受け入れられている回答は正しくありません (混乱を避けるために常にアンパサンドをエンコードすることをお勧めしますが)。

HTML 仕様では、あいまいなアンパサンドを次のように定義しています。

あいまいなアンパサンドとは、U+0026 AMPERSAND 文字 (&) の後に、U+0030 DIGIT ZERO (0) から U+0039 DIGIT NINE (9)、U+0061 LATIN SMALL LETTER A からU+007A LATIN SMALL LETTER Z、および U+0041 LATIN CAPITAL LETTER A から U+005A LATIN CAPITAL LETTER Z の後に、U+003B セミコロン文字 (;) が続きます。これらの文字は、名前付き文字参照セクション。

ただし、セミコロンで終わらないエンティティ ( など&amp) は、属性値で異なる方法で処理されます。

文字参照が属性の一部として使用され、一致した最後の文字が U+003B セミコロン文字 (;) ではなく、次の文字が U+003D 等号文字 (=) または範囲内にある場合U+0030 DIGIT ZERO (0) から U+0039 DIGIT NINE (9)、U+0041 LATIN CAPITAL LETTER A から U+005A LATIN CAPITAL LETTER Z、または U+0061 LATIN SMALL LETTER A から U+007A LATIN SMALL LETTER Zの場合、歴史的な理由から、U+0026 AMPERSAND 文字 (&) の後に一致したすべての文字は消費されない必要があり、何も返されません。

しかし、次の文字は であるため、これはここでは当てはまりません@

FWIW、私はこれを徹底的に調査し、私の発見についてここに書きました:http://mathiasbynens.be/notes/ambiguous-ampersands

また、あいまいなアンパサンドやセミコロンで終わらない文字参照 (どちらも無効) についてマークアップをチェックするために使用できるオンライン ツールも作成しました。(現在、これを正しく行う HTML バリデータはありません。)

http://i.stack.imgur.com/nyGPK.png

于 2012-01-17T07:13:09.583 に答える