前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何在html页面显示html标签源码

如何在html页面显示html标签源码

作者头像
celineWong7
修改2023-09-23 19:32:59
11.3K0
修改2023-09-23 19:32:59
举报
文章被收录于专栏:web前端踩坑web前端踩坑

这是一篇不正经实现方案报道。

1 引言

先来看个问答: stackoverflow: Why was the xmp HTML tag deprecated? [duplicate] 这个问题感觉问得好啊:为什么<xmp>标签被遗弃了啊?

<xmp>标签是什么? 它是能真正显示html源码的一个包含标签。

比如下面源码,放在html页面中浏览器打开,是能直接看见<h3>aaaa</h3><div>abc</div>这些带尖括号的源码的。但如果没有包含<xmp>,我们知道,它们会被解析渲染成aaa abc,当然,带了浏览器默认样式。

代码语言:javascript
复制
<xmp>
 <h3>aaaa</h3>
<div>abc</div>
</xmp>

但在HTML5遗弃了这个标签,取而代之的是<pre></pre> <code></code>,但这两个玩意儿本质只是保留空白符(code标签还有默认字体样式),实际要配合尖括号的转码使用。也就是说,< > 要分别使用 &lt; &gt;代替。

代码语言:javascript
复制
<pre>
 &lt;h3&gt; aaaa&lt;/h3&gt;
&lt;div&gt;abc&lt;/div&gt;
</pre>

老实讲,要手动转码这个过程就不是很实用了啊。 无奈,英文渣,也不知道全面那个问答里面有没有人给出了什么好的建议啊

2 想办法啊

其实也没啥好办法了啊。只能乖乖做转码呗。 能手动写在html里面还好说,但作为web服务的前端,很多人的数据都是后端给吧。 作为夹心又弱势的前端,再往前就是被UI蹂躏,往后就是被后端抛弃啊。后端给数据的时候不给转码咋整嘛。

好吧,只能自己用正则转码下了。 代码如下:

代码语言:javascript
复制
var  data = '<h3>aaaa</h3><div>abc</div>';
var rel = data.replace(/[<>]/ig, function(m,p,o){
  if(m === '<') return '&lt;';
  if(m === '>') return '&gt';
});

转是转了,就是如果data里面数据量大的话,这性能也是。。。。。

3 还有没有其他办法啊!

其实如果有append操作,可以试一下以下两种方式啊:

  • jQuery可以考虑ele.text(data)这种文本赋值;
  • 原生JavaScript可以考虑createTextNode(data)创建文本节点。

嗯!因为都指定了文本,data不知道咋地,就乖乖的真的是文本了,不会幺蛾子的被解析渲染了。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 引言
  • 2 想办法啊
  • 3 还有没有其他办法啊!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档