Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
对包含html实体的文本框执行jQuery val()_Jquery_Html_Encoding - Fatal编程技术网

对包含html实体的文本框执行jQuery val()

对包含html实体的文本框执行jQuery val(),jquery,html,encoding,Jquery,Html,Encoding,我用一把简单的js小提琴设置了我的问题 $(“#yo”).val('hell';o') 基本上,我想知道是否有一种方法可以显示撇号而不是编码的字符串。我在服务器上对这样的值进行了编码,以防止xss攻击,因此解码实际上不是一个有效的选项 谢谢您可以替换$39;在JS中使用“by”,并将其替换回服务器端 <input type="text" id="yo"> $("#yo").val('hell&#39;o'.replace('&#39;',"'")) $(

我用一把简单的js小提琴设置了我的问题


$(“#yo”).val('hell';o')
基本上,我想知道是否有一种方法可以显示撇号而不是编码的字符串。我在服务器上对这样的值进行了编码,以防止xss攻击,因此解码实际上不是一个有效的选项

谢谢

您可以替换$39;在JS中使用“by”,并将其替换回服务器端

<input type="text" id="yo">
$("#yo").val('hell&#39;o'.replace('&#39;',"'"))

$(“#yo”).val('hell';o'。替换('';',“'))
基本上,我想知道是否有一种方法可以显示撇号而不是编码的字符串

没有什么是正常的

value属性处理文本,而不是HTML

作为一种可怕的黑客,您可以通过解析HTML然后读取生成的文本节点将其转换为文本

$("#yo").val($("<div />").html('hell&#39;o').text());
$(“#yo”).val($(“”).html('hell';o').text());
…但不要。而是解决真正的问题

我已经在服务器上对这样的值进行了编码,以防止xss攻击

不要那样做

您将数据插入JavaScript,而不是HTML

当你不处理HTML时,不要为HTML辩护。这会让你变得脆弱

对插入JavaScript的数据进行编码的适当方法是使用JSON编码器。(如果将JSON放在HTML属性值中,则使用实体对生成的JSON进行编码;如果将其放在
元素中,则对任何
/
字符进行转义)

试试这个

var test = 'hell&#39;o';
var decoded = $('<div/>').html(test).text();
$("#yo").val(decoded);
var测试='hell';o';
var decoded=$('').html(test.text();
$(“#yo”).val(已解码);

这应该对您有所帮助

var tp = 'hell&#39;o';
var new_tp = $('<textarea />').html(tp).text();
$('#yo').val(new_tp); 
var-tp='hell';o';
var new_tp=$('').html(tp.text();
$('yo').val(新的);

有很多html实体-我真的不想全部替换它们,但感谢您的建议,我对此表示感谢。正确的编码方式在视图中,您可以按照数据的使用方式进行编码。我确实向管理层表明了这一点,他们告诉我他们没有时间这么做。作为解决办法,我只是在后端使用antixss编码器编码!我不明白你在这里想干什么。元素是
input type=“text”
,但您的代码附加到
textarea
元素。它也与input
var new\u tp=$('').html(tp).text()一起工作
var tp = 'hell&#39;o';
var new_tp = $('<textarea />').html(tp).text();
$('#yo').val(new_tp);