因爲我發現uglifyJS忽略單引號字符串中的轉義雙引號。不要逃避雙引號
'test \" + foo + \"'
結果
'test " + foo + "'
這僅僅是一個錯誤的行爲。
我有一個.js
,我想縮小和這個數據必須進入JSON。但是JSON API必須是這樣的。
{
string: "test \" + foo + \""
}
不
{
string: "test " + foo + ""
}
是否有配置uglifyJS,它不要忽略\"
在我醜化我的javascript的時刻,我所有的\"
用佔位符代替的方式。在此之後,我做一個字符串替換所有的佔位符讓它工作。 但是,然後我的測試不起作用。
編輯:我Javascript
的醜化版本必須是有效JSON
和有效Javascript
爲好。
編輯:根據要求,真正的例子的一部分。這段代碼必須被忽略,然後放入JSON中。
var privacylink = '#privacyButtonURL#';
link = '<a href=\"' + privacylink + '\" target=\"_blank\" style=\"color:#4398b5; text-decoration:underline;\">hear</a>';
的醜化版將
var a="#privacyButtonURL#", b='<a href="'+a+'" target="_blank" style="color:#4398b5; text-decoration:underline;">hear</a>'
這是行不通的。
JSON.stringify('var a="#privacyButtonURL#", b='<a href="'+a+'" target="_blank" style="color:#4398b5; text-decoration:underline;">hear</a>'')
「這只是一種錯誤的行爲「 - 事實並非如此。在JavaScript中,在這種情況下,這兩種表述意味着完全相同的東西。你的問題是你依賴於特定的JS格式,所以你可以通過將字符串混合在一起來構建JSON。改用適當的JSON庫。 – Quentin
'JSON.stringify({string:'test'+ foo +''})' – coyotte508
這不是問題所在。我動態創建了一個我想發送給後端的'.js'。我後端的API只接受JSON。所以我用'.js'作爲字符串發送一個有效的JSON。但是在這個'.js'字符串中,我需要用雙引號括起來,否則它不會起作用。 – DK1990