2011-05-24 105 views

回答

7

什麼是我們必須在JavaScript字符串

在HTML 4文檔逃避斜線的真正原因,定義爲包含CDATA元素裏面的序列</(如腳本)是結束標記和將結束元件(有錯誤,如果它不是</script>

至於JS而言/\/是一個字符串內是相同的。至於HTML而言</開始結束標籤b ut <\/沒有。

,以及爲什麼我們必須在XHTML中轉義字符串/否字符串。

XHTML不提供指定的元素本質上包含CDATA的方法,所以你需要明確地處理,否則有特殊含義(<&等)的字符。包裝它們包含CDATA標記元素是實現此目的的最簡單方法。

+0

所以我們永遠不必逃避一個正斜槓,只有一個 rubixibuc 2011-05-24 23:18:48

+0

換句話說,在XHTML中,我們必須避開正斜槓嗎? – rubixibuc 2011-05-24 23:20:10

+0

在「正常」的XHTML(沒有人使用)中,從來沒有。在HTML兼容的XHTML中(每個人都希望IE 8和更低版本被支持使用),與HTML中相同的地方。 – Quentin 2011-05-24 23:21:27

3

你不需要逃避/在JavaScript字符串,只是\,因爲如果你不這樣做,那麼字符串yes\no會不經意地轉化爲yes<newline>o。轉義\將防止這種情況。

此外,如果您不在URL中轉義&,那麼它後面的任何內容都將被視爲新參數。例如,a=Q&A將表示「參數a的值爲」Q「,並且還有一個參數A」,而不是「參數a的值爲」Q&A「」。轉義的正確方法是a=Q%26A

+0

爲什麼要爲提示寫'yes \ no'? – 2011-05-24 23:30:58

+0

@Paŭlo,你可能不會,這是我可以想到的非預期用途的最好例子。 – rid 2011-05-25 00:06:51

+1

Windows文件名? – 2011-05-25 00:46:36

0

需要使用斜槓來防止瀏覽器(特別是較老的瀏覽器)錯誤地將正斜槓解釋爲關閉的JavaScript標記。

+2

沒有什麼錯誤的。 – Quentin 2011-05-24 23:21:45