如何使 HTML 运行而不是显示数据库中的 html 命令



我正在使用nicEdit.js它像这样保存到数据库中:

<div align="center"><i>test</i><br></div><u><br><font size="5"><b>Become part of our team!</b></font><br></u>

从数据库中,我将其检索为$jobfulldesc。

这将正确显示它:

<?php
function unhtmlentities ($string) {
  $trans_tbl =get_html_translation_table (HTML_ENTITIES );
  $trans_tbl =array_flip ($trans_tbl );
  return strtr ($string ,$trans_tbl );
}
echo unhtmlentities($jobfulldesc); ?>

如果你尝试将nicEdit添加到javascript中,这是行不通的:

<script type="text/javascript">
  bkLib.onDomLoaded(function() {
      var myNicEditor = new nicEditor();
      myNicEditor.setPanel('myInstance1');
 });
</script>
<div id="myInstance1"><?php echo unhtmlentities($jobfulldesc); ?></div>

或内部:

<textarea><?php echo unhtmlentities($jobfulldesc); ?></textarea>

如何在数据库中的 nicEdit 中没有 HTML 格式的情况下看到它?

您只能使用 Javascript 解析 HTML 中的文本:

function getText(htmlString) {
       const virtual = document.createElement('div');
       virtual.innerHTML = htmlString;
       return virtual.textContent
}

假设htmlString来自数据库并通过PHP传递给javascript。

演示:

function getText(htmlString) {
       const virtual = document.createElement('div');
       virtual.innerHTML = htmlString;
       return virtual.textContent
}
const retreivedHtml = `<div align="center"><i>test</i><br></div><u><br><font size="5"><b>Become part of our team!</b></font><br></u>`;
console.log(
   getText(retreivedHtml)
)
// inject it in the textarea
document.querySelector('textarea').value= getText(retreivedHtml)
 <textarea></textarea>

相关内容

  • 没有找到相关文章

最新更新