使用 javascript 转换 HTML 标签并显示为样式文本
Convert HTML tags and display as styled text using javascript
我正在设计一个表单,该表单将接受 HTML 标签并将它们转换为显示在单独文本区域中的样式文本。想想一个非常简单的 JSbin。我认为这会起作用:
document.getElementById('tagName').innerHTML='variable'
但这会显示文本和标签 - 我只想要标签。
我需要一些有用的提示或推动我前进的方向。谢谢!
我想你要找的是 contenteditable
attr.
您可以使用该属性使 DOM 元素可编辑,例如 div
、span
、p
等。
有关详细信息,请转至 使内容可编辑
在订单方面,要能够从 textarea
写入 HTML 并将输入的 HTML 文本呈现到 contenteditable
元素中,您需要绑定某种事件以获取写入的 HTML,然后将其设置到目标 contenteditable
元素中。
var variable = '<b>EleFromStack</b>',
tagName = document.getElementById('tagName'),
textarea = document.getElementById('textarea');
textarea.addEventListener('input', function() {
tagName.innerHTML = this.value;
});
div {
width: 300px;
border: 1px dashed #000
}
<textarea id='textarea'>
</textarea>
<div id='tagName' contenteditable='true'>
</div>
看看 https://gomakethings.com/two-ways-to-get-and-set-html-content-with-vanilla-javascript/ 你想使用 .textContent
来获取没有标签的文本。
document.getElementById('text').innerHTML=document.getElementById('html-elements').textContent
<div id="html-elements">
<button>hello</button> <strong><em>world</em></strong>
</div>
<div id="text"></div>
我想你要做的是创建一个输入,然后监听值的变化并在另一个 div
中显示内部 html
<!-- HTML -->
<input type="text" id="input"></input>
<div id="output"></div>
然后监听变化并更新输出
//JS
const input = document.querySelector('#input'),
output = document.querySelector('#output');
button.addEventListener('change', () => {
output.innerHTML = input.value;
})
(JSBIN: https://jsbin.com/genokox/edit?html,js,console,outputjsbin)
问题是您正试图将 HTML 写入文本区域。文本区域由浏览器引擎保留为 post 纯文本。不要将您的内容写入文本区域,而是将其写入 DIV 或其他旨在包含 HTML.
的内容块
我正在设计一个表单,该表单将接受 HTML 标签并将它们转换为显示在单独文本区域中的样式文本。想想一个非常简单的 JSbin。我认为这会起作用:
document.getElementById('tagName').innerHTML='variable'
但这会显示文本和标签 - 我只想要标签。
我需要一些有用的提示或推动我前进的方向。谢谢!
我想你要找的是 contenteditable
attr.
您可以使用该属性使 DOM 元素可编辑,例如 div
、span
、p
等。
有关详细信息,请转至 使内容可编辑
在订单方面,要能够从 textarea
写入 HTML 并将输入的 HTML 文本呈现到 contenteditable
元素中,您需要绑定某种事件以获取写入的 HTML,然后将其设置到目标 contenteditable
元素中。
var variable = '<b>EleFromStack</b>',
tagName = document.getElementById('tagName'),
textarea = document.getElementById('textarea');
textarea.addEventListener('input', function() {
tagName.innerHTML = this.value;
});
div {
width: 300px;
border: 1px dashed #000
}
<textarea id='textarea'>
</textarea>
<div id='tagName' contenteditable='true'>
</div>
看看 https://gomakethings.com/two-ways-to-get-and-set-html-content-with-vanilla-javascript/ 你想使用 .textContent
来获取没有标签的文本。
document.getElementById('text').innerHTML=document.getElementById('html-elements').textContent
<div id="html-elements">
<button>hello</button> <strong><em>world</em></strong>
</div>
<div id="text"></div>
我想你要做的是创建一个输入,然后监听值的变化并在另一个 div
中显示内部 html<!-- HTML -->
<input type="text" id="input"></input>
<div id="output"></div>
然后监听变化并更新输出
//JS
const input = document.querySelector('#input'),
output = document.querySelector('#output');
button.addEventListener('change', () => {
output.innerHTML = input.value;
})
(JSBIN: https://jsbin.com/genokox/edit?html,js,console,outputjsbin)
问题是您正试图将 HTML 写入文本区域。文本区域由浏览器引擎保留为 post 纯文本。不要将您的内容写入文本区域,而是将其写入 DIV 或其他旨在包含 HTML.
的内容块