Jquery append自动解码HTML编码字符串
jquery append automatically decodes html encoded string
我有一个这样的字符串:
var b = "<button type='button' onclick='javascript:"+f+"('""+ encodedString+"'");'> hi</button>"
//encodedString = "a " <hr> <br>"
之后,我做了如下操作:
$('li').append(b);
在此之后,encodedString被解码,我的onclick不工作,因为"
成为"
不通过html直接设置click
事件,而是绑定一个事件监听器。eval(f)
允许您通过字符串引用函数。如果可能的话,我建议传递对函数的直接引用。
如果函数在全局作用域中定义,则使用window[f]
。注意:如果f
看起来像Math.round
,这将不起作用,因为window["Math.round"] != window["Math"]["round"]
.
//f is a string which contains a single function name.
var b = $('<button>').click(function(){
eval(f)(encodedString);
});
$('li').append(b);
如果f是一个动态变量,它会改变(例如,在循环中),将代码包装在一个匿名函数中:
(function(f){
var b = $('<button>').click(function(){
f(encodedString);
});
$('li').append(b);
})(eval(f));
相关文章:
- 为什么字符编码对URL很重要
- 以纯文本加载的脚本-未声明纯文本文档的字符编码
- 在cshtml中对特殊字符进行编码
- 打开字幕字符编码
- 使用节点请求模块的 UTF8 字符编码
- 使用特殊字符 Javascript 对 URL 进行编码
- 仅替换 iframe 的编码字符 Jquery
- document.getElementById(foo).value,带有html编码的特殊字符
- JSON编码一个包含#和其他特殊字符的字符串
- 阻止自动HTML特殊字符编码
- Base64在PHP和JavaScript之间使用加号或与号字符对字符串进行编码
- 奇怪的字符的Papaparse正确编码
- 在 JavaScript/Python 中编码特殊字符
- 在 url 中编码特殊字符的最佳方法
- TinyMCE HTML编码特定字符
- 编码特殊字符<和比;在MVC参数
- 如何从文本文件中为自动填充文本字段编码特殊字符
- 在javascript函数参数中编码特殊字符
- php编码特殊字符
- 通过JavaScript设置按钮值以包含与符号编码的字符