&ampの用途


106

以下のURLの動作に違いはありますか?

なぜ&挿入されるのかわかりませんが、違いはありますか?

www.testurl.com/test?param1=test&current=true

www.testurl.com/test?param1=test&current=true


1
コンテキストを教えてもらえますか?これはフォームアクションですか?ページに表示されただけですか?
jprofitt 2012年

@ user470184反対投票はしませんでしたが、検討しました。この問題に関するSOに関する情報はすでにたくさんあります。
Charles Sprayberry、2012年

「一般的な動作」はまだかなり曖昧です。<p>www.testurl.com/test?param1=test&amp;current=true</p>またはのようなものについて疑問に思っていますか<a href="www.testurl.com/test?param1=test&amp;current=true">linky</a>
jprofitt 2012年

@ jprofitt <a href="www.testurl.com/test?param1=test&current=true"> linky </a>
blue-sky

回答:


126

& 「文字参照の開始」のHTMLです。

&amp; 「アンパサンド」の文字参照です。

&current; は標準の文字参照ではないため、エラーになります(ブラウザがエラー回復を実行しようとする場合がありますが、これに依存しないでください)。

実際の文字(など&trade;)に文字参照を使用した場合、URLには希望の文字列の代わりにそれ(™)が表示されます。

(あなたが使用してHTMLのバージョンに応じて、あなたが持つ文字参照を終了する必要があるため注意してください;理由である、&trade=次の文字が非単語文字(ある場合™として扱われます。HTML 4は、それがommitedすることができますなど=)ですが、一部のブラウザ(Hello Internet Explorer)ではこれに問題があります)。



5

私のソース:http : //htmlhelp.com/tools/validator/problems.html#amp

アンパサンド( "&")を含むURLを含めると、別の一般的なエラーが発生します。

これは無効です:

a href = "foo.cgi?chapter = 1&section = 2&copy = 3&lang = en"

説明:

"&"はエンティティ参照を開始すると想定されているため、この例では「不明なエンティティセクション」のエラーが生成されます。ブラウザはこの種のエラーから安全に回復することがよくありますが、実際の問題が発生する場合もあります。この例では、多くのブラウザが&copy = 3を©= 3に正しく変換するため、リンクが失敗する可能性があります。⟨は左向き山かっこのHTMLエンティティであるため、一部のブラウザーは&lang = enを<= enに変換します。また、古いブラウザの1つがエンティティ§を見つけ、&section = 2を§ion= 2に変換します。

したがって、ここでの目標は、Webサイトを検証するときに問題を回避することです。したがって&amp;、マークアップにURLを書き込むときは、アンパサンドをに置き換える必要があります。

交換することに注意してください&&amp。HTMLでURLを書き込む場合にのみ行われます。ここ"&"で、は特殊文字(「<」および「>」とともに)です。プレーンテキストの電子メールメッセージまたはブラウザのロケーションバーに同じURLを書き込む場合は、を使用"&"しますが、は使用しません"&amp;"。HTMLの場合、ブラウザはに変換さ"&amp;"れる"&"ため、Webサーバーはリクエストのクエリ文字列のみを表示し、クエリ文字列は表示"&" しません"&amp;"

お役に立てれば : )



-2

文字列を実行している場合。作る:

let linkGoogle = 'https://www.google.com/maps/dir/?api=1'; 
let origin = '&origin=' + locations[0][1] + ',' + locations[0][2];


aNav.href = linkGoogle + origin;

1
問題は、URL &ampではなくHTML に関するもの&です。
クエンティン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.