停止通过x-editable输入<script>

时间:2016-02-23 13:36:41

标签: javascript jquery x-editable

我们使用 x-editable 来快速编辑行。我们注意到一个小错误。当&lt; script&gt; 标签输入到可编辑输入时,它将被执行。

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

例如,如果 newValue 的字符串值为&lt; script&gt; alert ('hello')&lt; / script&gt; ,然后我们看到 alert 消息显示为'hello'。

&#xA;&#xA;

我们可以阻止这种行为吗?

&#xA;

1 个答案:

答案 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'
}
});

JavaScript String replace() Method