Javascript 将html标记显示为文本

Javascript 将html标记显示为文本,javascript,jquery,html,editor,Javascript,Jquery,Html,Editor,我正在为我的网站制作一个小的html编辑器 我的编辑 标签 问题是您不能在之间执行html代码片段 Html代码需要在之间显示为文本,而不是Html本身 外部其他标记需要显示为html尝试添加以下行: text=text.replace(//g,”); 这会将字符替换为大于号的HTML变体,请尝试使用以下方法: 函数textarea\u post(){ var text=$(“.editor”).val(); text=text.replace(//code>/g,“”)。replace(

我正在为我的网站制作一个小的html编辑器

我的编辑

标签

问题是您不能在
之间执行html代码片段
Html代码需要在
之间显示为文本,而不是Html本身


外部
其他标记需要显示为html

尝试添加以下行:

text=text.replace(//g,”);
这会将
字符替换为大于号的HTML变体
,请尝试使用以下方法:

函数textarea\u post(){
var text=$(“.editor”).val();
text=text.replace(//code>/g,“”)。replace(//g,“”);
$(“.results”).html(文本);
$(“.results pre”).each(函数(){
var escapedText=$(this.html();
$(this).text(escapedText);
});//
}
$(“.editor”).on(“向下键向上键粘贴”,函数(e){
textarea_post();
});

我认为你想做的大部分事情都可以通过css来完成;你的javascript看起来不错;但您的html需要稍作调整,因为中心标记已被弃用,并且在html中不受支持

查看此代码段或(只需按文本区域末尾的enter键)

编辑:更新以包含来自Mohit的更好的脚本,但请注意中心标记

函数textarea\u post(){
var text=$(“.editor”).val();
text=text.replace(/
/g,“

例1

函数MyFunction(a,b){
返回a+b;
}
MyFunction(5,10)
你好

尝试使用
$(“.results”).text(text);
而不是
$(“.results”).html(text);
我需要使用
$(“.results”).html(text)
因为´´之外的其他标记需要显示为html,如我的´´示例´请检查我的更新答案。我用几个示例字符串对其进行了测试,似乎效果良好。是的,可以,但只需要替换hmm内的标记是的,因为只有
谢谢@RachelGallen:)如果您尝试在
标记之间编写html代码片段,它将消失。例如´
´它需要在结果中将
标记显示为文本如果您慢慢编写html代码,您可以看到它发布
@Tonza,我认为这可能是最好的选择。用户只需要不时地进行代码预览好的,只需发布一个便笺,按enter键即可预览
<textarea class="editor"></textarea>
<div class="results"></div>
function textarea_post(){
    var text = $(".editor").val();
    text = text.replace(/<code>/g,"<pre>").replace(/<\/code>/g,"</pre>");
    $(".results").html(text);
}

$(".editor").on("keydown keyup paste",function(e){
    textarea_post();
});
text = text.replace(/</g,"&lt;").replace(/>/g,"&gt;");