Jquery escapes "<" " >"
Jquery escapes "<" " >"
我有一个文本区。在其单击事件上。我在DB插入它,然后显示它作为元素列表中的第一个元素。问题是。如果在textarea中输入"<afasd>"
, jquery无法正常显示。它显示为空。代码是
var note = $.trim( $('#rep_notes_add_notes').val());
if(note == "")
return false;
$.ajax({
url: 'include/tre.ajax.php',
type: 'POST',
data: {
action: 'insert',
note: note
},
dataType: 'json',
success: function(data) {
jQuery("#rep_notes_add_notes").val('');
jQuery(".no_notes").remove();
*$(".notes:eq(0)").before('<div class="notes">'+note+'<div class="note-added"> Added by '+user +'<span> on </span>'+data.update_time+'</div></div>');*
}
});
标记为*的行找到注释div,然后在它之前插入一个元素以显示新输入的文本。
有人能帮我解决这个问题吗?它不显示它,因为它认为<afasd>
是一个标记,而不是文本。需要将"<
"修改为"<
"才能显示。
var str = "<afasd>";
var escaped = str.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">");
不要将任意数据连接到HTML中。您将面临注入问题,以及您所看到的无效HTML问题。这条线:
$(".notes:eq(0)").before('<div class="notes">'+note+'<div class="note-added"> Added by '+user +'<span> on </span>'+data.update_time+'</div></div>');
应该是这样的(未测试,未完成,但你明白的意思):
$('.notes:eq(0)').before(
$('<div>').addClass('notes').text('Added by ' + user)
);
关键是,如果你想设置文本,使用.text()
,而不是HTML。
相关文章:
- 检测电话窃听,即:<a href="电话:xxx">在UIWebview上
- 图像可以从源<img src=""/>.TEXT可以在没有javascript的情况下从外部
- 在<script src=“"></脚本>标签
- Django,HTML,JS:<img src=“#">可以在HTML中工作,但不能在JS文件中工作
- JSP<a href="">无法保存常规语句
- 在MySQL中存储映像路径与使用<img src=“"onError=“">
- $_POST值在<形式动作=“;javascript:someJSFunction()"/>
- 类似于htmls<script src=“">xaml的标签
- 为什么<车身负载=“;fn()">使用函数调用,但是window.onload=fn;使用处理程序函
- 更改URL而不使用<a href="">
- 为什么可以't我将JS代码置于<script src=“">代码</脚本>
- 如何将鼠标悬停在<img src=“">标签
- 如何设置<一个标题=“">用于erb
- 将用户输入动态地附加到<script src=“">来自Java Script中的文本框
- <a href="#">最终调用Javascript函数
- <a href="javascript:foo(this)">通过Window,我想要标记
- 使用<重置所有字段(复选框、文本、选择);body onload()">
- 如何从<a href="">到javascript函数
- IE总是在<a href="#"/>被单击
- JS:有一个新的运算符"=>&”;