2012-09-13 49 views
2

我需要創建一個存儲動態生成的HTML內容的變量。從PHP返回的字符串中的html內容可能具有單引號或雙引號。如何將字符串存儲在具有單引號和雙引號的JavaScript變量中?

html_content=<?=$string;?>; 

字符串可以有雙引號是這樣的:

<span id="something">something else</span> 

或單引號是這樣的:

<span id='something'>something else</span> 

然後,我怎樣才能正確保存在JavaScript字符串?我不能使用單引號或雙引號。

+2

正如旁註:建議您始終使用而不是以實現兼容性。前者在任何地方都受到支持,後者不一定。僅供參考。 – vanneto

回答

2

可以爲您節省那種字符串通過輸出之前修改它在服務器端,這樣的:那麼

html_content = "<?=addslashes($string);?>" 

的方法addslashes($string)將其送入JavaScript變量之前逃脫在運行任何雙引號。

0

使用json_encode可以將幾乎任何變量從PHP傳遞到JavaScript。

html_content=<?=json_encode($string)?>; 

在字符串的情況下,它會自動添加引號和任何必要的轉義。

1

那麼你可以隨時使用JavaScript's escape function在存儲它之前序列化你的字符串。這會工作。

但我認爲這裏更大的問題是,單引號實際上並不是你試圖在你的id屬性中使用它們的方式(按照HTML規範)。它總是必須用雙引號。如果來自的代碼不在你的控制之下,那麼你可以做的事情就不多了,它只是被打破了;但如果它在你的控制之下,你也應該修復它。

+0

越獄現在已被棄用 – ftrotter

相關問題