在jQuery插件设置中使用特殊字符
Use special characters in jQuery plugin setting?
我正在开发的插件遇到了问题。我允许用户向插件传递一些文本,如下所示:
data-plugin='{ "setting" : "hello world" }'
没有问题,直到引入一个特殊的字符:
data-plugin='{ "setting" : "hello world, it's been awhile." }'
撇号只是暂停所有内容,不会抛出任何错误。我不知道我会如何允许用户像往常一样键入这个?
编辑:以下是导致问题的确切属性:
data-plugin='{
"foreground":"1_foreground.png",
"horizon":"50,120",
"subtitle":"Hello world. It's been awhile.",
"subtitle_speed":"3500,2000",
"subtitle_color":"#ff5b00",
"subtitle_pos":"bottom"
}'
编辑2:
当在设置中使用"时,在合并插件内的对象之前会记录这一点:
{
"foreground":"1_foreground.png",
"horizon":"50,120",
"subtitle":"Hello world. '
在那之后,我直接使用$.extend来合并它,然后将其作为数据应用。
它是这样设置的:
调用大量元素的插件:
$('.el').plugin({ "setting1" : "value" });
在这里使用它们来修改这些设置:
<div class="el"></div>
<div class="el" data-plugin='{ "setting1" : "special value" }'></div>
无论如何,这不是问题所在。问题是试图在值中插入撇号。任何HTML元素上的单引号都是有效的。
谢谢!
data-plugin='{ "setting" : "hello world, it's been awhile." }'
由于您使用撇号包装JSON字符串,因此需要转义字符串中的撇号。
更改为:
data-plugin='{ "setting" : "hello world, it''s been awhile." }'
编辑:好的,我想我已经知道你试图做什么了,基于数据插件是一个html属性:
我尝试了一个JSFIDDLE来复制,下面是我得到的:
<input type='hidden' data-plugin='{
"foreground":"1_foreground.png",
"horizon":"50,120",
"subtitle":"Hello world. It''s been awhile.",
"subtitle_speed":"3500,2000",
"subtitle_color":"#ff5b00",
"subtitle_pos":"bottom"
}'>
和javascript
alert($('input').data('plugin'));
它会导致你在问题中注意到的错误。
根据对您问题的第一条评论,我将撇号转义为'
,当我运行时
alert($('input').data('plugin'));
我得到了恰当的回应。这将向JSON对象发出警报,因此
alert($('input').data('plugin').foreground);
alerts"1_foreground.png"。要将其转换回JSON,如果您正试图这样做,则需要:
var jsonPluginSettings = JSON.stringify($('input').data('plugin'));
相关文章:
- javascript替换换行符和特殊字符
- angularjs删除动态形式元素中的特殊字符
- 使用json_encode通过xmlhttp.responseText发送特殊字符(即caron)
- 在搜索中考虑特殊字符的
- 避免键入一些特殊字符
- Regex测试特殊字符
- 在 Javascript 中对特殊字符进行排序 (æ)
- 必须检查长度,并在文本框中允许一些特殊字符
- 一个jquery验证器方法,它不接受纯数字或纯特殊字符,但接受上面是否有字母
- 用于在Javascript中删除多个空格的特殊字符
- jQuery-Regex以防止任何特殊字符
- javascript正则表达式来识别所有特殊字符
- RegEx只获取特殊字符,前后不获取任何字符
- 如何使用JQuery检查输入(电子邮件)字段是否包含特殊字符
- Javascript:包括特殊字符的文本选择
- 获取特殊字符后没有单词的句子
- 替换字符串javascript中的所有特殊字符..
- 在cshtml中对特殊字符进行编码
- 如何设置公司名称应该以字符开始的javascript验证规则?可以包含数字和特殊字符
- 在jQuery插件设置中使用特殊字符