所以我在我的网站上使用cookies(大惊喜;-)),但可能令人惊讶的是我出于某种原因(不要问我为什么)存储一些css
样式值cookie,这是完美的,花花公子,直到你在那里添加;
,不应该在那里。
所以我存储的cookie看起来像这样:
token=9d133691-a955-4980-bf1d-9492d3c64026;
user=2601;
config=JSON"{
"socketAddress":"string",
...
bunch more values
...
"views":[{
"showInMenu":true,
"route":"Opgave Liste",
"routeParameters":{"afdeling":true},
"viewFunctions":{
"itemList":{
"css":{
"class":"bold",
"conditional":{
"condition":"[REG.TASK] === 'off'",
"false":{
"style":"background:red;"
}
}
}
}
}
}]
}";
我获取cookie的方式是这样的:
<script>
function readCookie(){
var cookie = document.cookie;
console.info('base cookie : ', cookie);
}
readCookie();
</script>
我得到的结果是正确的cookie,但是它在background:red
之后被切断。正如我之前提到的,我知道为什么,我的问题是,有没有办法防止这种情况,并且仍然在字符串中有;
。在字符串中是否存在某种类型的转义字符:即。 \"
?
答案 0 :(得分:1)
在执行JSON字符串化之前尝试使用encodeURIComponent(css)
,然后使用decodeURIComponent
来获取实际值。
例如:
{
"style": encodeURIComponent("background:red;")
}
(您可以/应该使用实用程序功能自动执行此过程。)