我们使用 x-editable 来快速编辑行。我们注意到一个小错误。当< script>
标签输入到可编辑输入时,它将被执行。
< div class =“测试“>< / div>



 $('。edit ').editable({
 params:function(params){
 var data = {};
 data ['id'] = params.pk;
 data [params。 name] = params.value;
返回数据;
},
 success:function(response,newValue){
 $(“。test”)。html(newValue); 
 //如果newValue将是< script> alert('hello')< / scipt>
 //然后我们会看到警告消息“hello”
}
} );



 例如,如果 newValue
的字符串值为< script> alert ('hello')< / script>
,然后我们看到 alert
消息显示为'hello'。
我们可以阻止这种行为吗?

答案 0 :(得分:1)
在输入中将字符串“script”替换为“code”......这样它将作为“text”输出。这样的事可能......
$('.edit').editable({
params: function(params) {
var data = {};
data['id'] = params.pk;
data[params.name] = params.value;
return data;
},
success: function(response, newValue){
//gi: Perform a global, case-insensitive replacement:
newValue = newValue.replace(/script/gi, "code");
$(".test").html(newValue);
//if newValue will be <script>alert('hello')</scipt>
// then we see alert message with 'hello'
}
});