2011-02-10 36 views
1

這個問題可以分割成兩部分:瀏覽器轉換單引號(')轉換成「S和忽略‘’S,HTML /使用Javascript

首先,在瀏覽器忽略引號的轉義: 一幅畫值得一體的千言萬語:?http://i.stack.imgur.com/ZmlgJ.png

此之前沒有發生什麼時候這種行爲變化
此外,爲什麼瀏覽器單引號轉化爲雙引號又是如何得出它不需要逃避例如? :http://i.stack.imgur.com/endzi.png(檢查員中的代碼與瀏覽器窗口中的代碼相同)

提前致謝!

回答

4

首先,瀏覽器是忽略引號的轉義

HTML與JavaScript不。引用與用於分隔該值的引號字符相匹配的屬性值中的字符必須由實體表示,而不是以斜槓作爲前綴。

<foo myAttribute="This value includes a double quote character: &quot;"> 

是的,它沒有這並沒有發生。

此外,爲什麼瀏覽器將單引號轉換爲雙引號?

瀏覽器將HTML解析爲DOM。在這個階段沒有引號,只有屬性和值。

當您使用DOM檢查器時,它會回傳到HTML中。使用雙引號是一種慣例。幾乎所有的HTML都使用"來書寫屬性值。

那個特殊的DOM檢查器甚至沒有真正將數據序列化。它只是提供一個可視化。這裏它使用顏色更改來標識屬性值。

+0

部分我不是在網頁編程的新的不匹配,而且我敢肯定這種行爲以前不是這樣,但我可能是錯的,你可能是對的。我記得把`onclick ='javascript:alert(\'hello world \')'`,但是,無論如何``onclick ='javascript:alert(" hello world ")``似乎工作。謝謝。 – joaquin 2011-02-10 21:03:23

0

我不確定是否it's你的問題的原因,但似乎有一個在引號中的'Beginner's spear'

+0

是的,我也看到了,但顯然瀏覽器似乎不在乎。 – joaquin 2011-02-10 21:09:01