我有以下代码
$(document).ready(function () {
$(".page").on('click', function () {
$("#ctl00_MainContent_dfComments").html(function (i, val) {
return val.replace(/\]/g, '>');
});
});
$(".page").on('click', function () {
$("#ctl00_MainContent_dfComments").text(function (i, val) {
return val.replace(/\[/g, "<");
});
});
});
在replacing characters in entire document JQuery的帮助下,这非常有效。但是,当&lt;插入支架,整个div变为空白。我可以替换[有任何东西,但是一旦我放入&lt; div里面的一切都消失了。知道可能会发生什么吗?
是的,这应该创建一个粗体(有点像bb解析器)
答案 0 :(得分:2)
您的第二次替换是使用.text()
而不是.html()
。作为旁注,您还可以组合两个事件处理程序。
$(document).ready(function () {
$(".page").on('click', function () {
$("#ctl00_MainContent_dfComments").html(function (i, val) {
return val.replace(/\]/g, '>').replace(/\[/g, '<');
});
});
});
这里有效:http://jsfiddle.net/pbnDP/8/
按下按钮使文本变为粗体。
主要职位的评论中讨论了明显的安全问题。不要将其放在用户可以生成正在运行的内容的网站上。
答案 1 :(得分:1)
看起来您可能没有最终使用Valid HTML和DOM渲染,html会为您处理任何无效的HTML。
你的脚本存在一些问题 - 首先它会宣传危险的html,你似乎没有对代码进行任何形式的理智或黑名单/白名单检查。
另一个问题是您手动命名ASP.NET ID - 这很糟糕,因为它们可以更改。请改用.ClientID。
答案 2 :(得分:1)
$(".page").on('click', function () {
$("#ctl00_MainContent_dfComments").html(function (i, val) {
return val.replace(/\[/g, "<");
});
});
.html可能比文本效果更好,并且还使用类名或clientid来选择与他在答案中建议的类似的元素,这不好猜测浏览器将id更改为什么。
答案 3 :(得分:0)
请再次检查您的DOM,看起来浏览器会将<
>
检测为html标记或html aint有效。
工作版本: http://jsfiddle.net/pbnDP/
我知道在包括Ruby在内的少数编程世界中,你可能想要使用名为html_safe
的东西。
希望它有所帮助。