Apakah ada perbedaan perilaku URL di bawah ini.
Saya tidak tahu mengapa &
dimasukkan, apakah ada bedanya?
www.testurl.com/test?param1=test&current=true
melawan
www.testurl.com/test?param1=test¤t=true
Apakah ada perbedaan perilaku URL di bawah ini.
Saya tidak tahu mengapa &
dimasukkan, apakah ada bedanya?
www.testurl.com/test?param1=test&current=true
melawan
www.testurl.com/test?param1=test¤t=true
<p>www.testurl.com/test?param1=test&current=true</p>
atau <a href="www.testurl.com/test?param1=test&current=true">linky</a>
?
Jawaban:
&
adalah HTML untuk "Awal referensi karakter".
&
adalah referensi karakter untuk "An ampersand".
¤t;
bukan referensi karakter standar dan begitu juga kesalahan (browser mungkin mencoba melakukan pemulihan kesalahan tetapi Anda tidak harus bergantung pada ini).
Jika Anda menggunakan referensi karakter untuk karakter nyata (misalnya ™
) maka itu (™) akan muncul di URL, bukan string yang Anda inginkan.
(Perhatikan bahwa tergantung pada versi HTML yang Anda gunakan, Anda mungkin harus mengakhiri referensi karakter dengan a ;
, itulah sebabnya &trade=
akan diperlakukan sebagai ™. HTML 4 memungkinkannya untuk dihilangkan jika karakter berikutnya adalah karakter non-kata ( seperti =
) tetapi beberapa browser (Halo Internet Explorer) memiliki masalah dengan ini).
HTML tidak mengenali &
tetapi akan mengenali &
karena sama dengan &
di HTML
Saya melihat postingan ini yang dibuat seseorang: http://www.webmasterworld.com/forum21/8851.htm
Sumber Saya: http://htmlhelp.com/tools/validator/problems.html#amp
Kesalahan umum lainnya terjadi saat menyertakan URL yang berisi ampersand ("&"):
Ini tidak valid:
a href = "foo.cgi? chapter = 1 & bagian = 2 & copy = 3 & lang = en"
Penjelasan:
Contoh ini menghasilkan kesalahan untuk "bagian entitas yang tidak diketahui" karena
"&"
diasumsikan untuk memulai referensi entitas. Peramban sering kali pulih dengan aman dari jenis kesalahan ini, tetapi masalah nyata memang terjadi dalam beberapa kasus. Dalam contoh ini, banyak browser dengan benar mengonversi & copy = 3 ke © = 3, yang dapat menyebabkan tautan gagal. Karena ⟨adalah entitas HTML untuk kurung sudut kiri, beberapa browser juga mengubah & lang = en menjadi 〈= en. Dan satu browser lama bahkan menemukan entitas §, mengonversi & section = 2 menjadi §ion = 2.
Jadi tujuannya di sini adalah untuk menghindari masalah saat Anda mencoba memvalidasi situs web Anda. Jadi, Anda harus mengganti ampersand dengan &
saat menulis URL di markup Anda.
Perhatikan bahwa mengganti
&
dengan&
; hanya dilakukan saat menulis URL dalam HTML, di mana"&"
terdapat karakter khusus (bersama dengan "<" dan ">"). Saat menulis URL yang sama dalam pesan email teks biasa atau di bilah lokasi browser Anda, Anda akan menggunakan"&"
dan tidak"&"
. Dengan HTML, browser diterjemahkan"&"
menjadi"&"
server Web hanya akan melihat"&"
dan tidak"&"
dalam string kueri permintaan.
Semoga ini membantu : )
Itu contoh yang bagus. Saat ¤t
diurai menjadi node teks, node tersebut akan diubah menjadi ¤t
. Ketika diurai menjadi nilai atribut , itu diuraikan sebagai ¤t
.
Jika Anda ingin ¤t
di node teks, Anda harus menulis &current
di markup Anda.
Detail berdarah ada di sini: http://dev.w3.org/html5/spec/tokenization.html#consume-a-character-reference
jika Anda melakukan serangkaian karakter. membuat:
let linkGoogle = 'https://www.google.com/maps/dir/?api=1';
let origin = '&origin=' + locations[0][1] + ',' + locations[0][2];
aNav.href = linkGoogle + origin;
&
HTML, bukan &
URL.