簡體   English   中英

為什么對href屬性使用url編碼而不是html編碼?

[英]Why use url encoding instead of html encoding for the href attribute?

在這個bit.ly書簽中,我看到他們正在使用url編碼

  <a title="✚ Bitlink" href="javascript:(function()%20%7B%20var%20s%20=%20document.createElement(%22script%22);%20s.setAttribute(%22id%22,%20%22bitmark_js%22);%20s.setAttribute(%22type%22,%20%22text/javascript%22);%20s.setAttribute(%22src%22,%20%22//bitly.com/a/bitmarklet.js%22);%20(top.document.body%20%7C%7C%20top.document.getElementsByTagName(%22head%22)[0]).appendChild(s);%20%7D)();" id="bitmarklet">✚ Bitlink</a></p>

但是,因為它實際上是JavaScript,並且不會由URL代理處理,所以我不明白他們為什么選擇這種編碼。

通常,href會有一個GET請求,該請求需要url編碼,但在這種情況下不需要。

為什么是這樣?

他們這樣做是因為這是a標簽。 單擊href時,瀏覽器的URL解析器將解析href 解析為URL的任何內容都需要進行URL編碼。 在這種情況下,確實確實是JavaScript,瀏覽器將照此執行它,但是解析器仍然需要URL編碼的字符串才能阻止它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM