javascript - 在新窗口中打印带有标签的html文本

标签 javascript html

我需要在新窗口中打印字符串 html 标签 html。 我所做的是:

function printNewTab(toPrint, title) {
   var newWin = window.open("about:blank");
   newWin.document.write("<html><head><title>" + title + "</title></head></html>");
   newWin.document.write(toPrint.toString());
   console.log(title + ":");
   console.log(toPrint);
}

但是如果我有一个像这样的字符串:

var s = "<h1>title<u> number</u> 1</h1>";

并使用上面的方法:

printNewTab(s, "title");

我获得一个新窗口,其中文本不显示标签,但采用 html 格式。

虽然我真的很想看到打印的 <h1>title<u> number</u> 1</h1> 。 我怎样才能做到这一点?

谢谢!

最佳答案

如果您对字符串进行 html 编码,则像 < 这样的符号成为&lt ,它会起作用的。

document.write("&lt;h1&gt;");将打印<h1> .

顺便说一句,jQuery 的 text() 函数可以为您完成此操作。

function escapeHtml(unsafe) {
    return unsafe
         .replace(/&/g, "&amp;")
         .replace(/</g, "&lt;")
         .replace(/>/g, "&gt;")
         .replace(/"/g, "&quot;")
         .replace(/'/g, "&#039;");
 }

document.write(escapeHtml("<h1>title<u> number</u> 1</h1>"));

这将打印 <h1>title<u> number</u> 1</h1> .

函数取自this question 。感谢@bjornd。

关于javascript - 在新窗口中打印带有标签的html文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33589137/

相关文章:

javascript - 在 NodeList.connect() 注册的事件内部,如何获取对触发节点的引用?

javascript - 在不使用全局范围的情况下单击将数字推送到数组

javascript - 无法使用 aws sam 和 Node js 将图像保存到亚马逊 S3

javascript - Jira 问题收集器代码在嵌入 html 中时有效,但在单独的 javascript 文件中无效

javascript - 页面内链接重新加载页面

javascript - 在 JavaScript 中将字符串转换为日期

javascript - 用于 jquery 布局的自定义切换器

javascript - 创建 AJAX 导航的最佳实践是什么?

javascript - 为 DOM 元素创建唯一标识符

html - 使用 100% 高度的 CSS 实现简单的行布局