开发者

How to insert HTML as Text

开发者 https://www.devze.com 2023-02-23 05:41 出处:网络
I want HTML, for example, <p>, to show show as just that, in plain text, and not interpreted by the browser as an actual tag.

I want HTML, for example, <p>, to show show as just that, in plain text, and not interpreted by the browser as an actual tag.

I know JQuery has .html and .text, but how is this done in raw JS?

There are functions like encodeURIComponent that encodes <p> to %3Cp%3E but if I just put that into HTML, it interprets it literally as %3Cp%3E.

So there are also things like &gt; and 开发者_运维技巧&lt;, they work but I can't find any JavaScript functions that escapes & unescapes from this.

Is there a correct way to show HTML as text with raw JavaScript?


There's no need to escape the characters. Simply use createTextNode:

var text = document.createTextNode('<p>Stuff</p>');
document.body.appendChild(text);

See a working example here: http://jsfiddle.net/tZ3Xj/.

This is exactly how jQuery does it (line 43 of jQuery 1.5.2):

return this.empty().append( (this[0] && this[0].ownerDocument || document).createTextNode( text ) );


The function used by Prototype looks like a good start:

http://www.prototypejs.org/api/string/escapeHTML

function escapeHTML() {
    return this.replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;');
}

Version more suited to use outside Prototype:

function escapeHTML(html) {
    return html.replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;');
}


You can use aslo innerText from most of DOM elements:

document.getElementById('some').innerText = "There can be <b> even HTML tags </b>";

The tags will not be formatted. You can aslo use \n for new line and more codes (\t, \u2623...). If you want aslo to use fixed-size characters you can use easy <pre> tag.


This is a job for the method createTextNode

var target div = document.getElementById('div1');
targetDiv.appendChild(document.createTextNode('<p>HelloWorld</p>'));


i suggest to use pre tag of html

and you can convert your using this link

e.g if you copy

<p>Hi </p>

it will give you converted code as...

&lt;p&gt;Hi &lt;/p&gt;

Just copy and paste above code in pre and it will work fine...

0

精彩评论

暂无评论...
验证码 换一张
取 消