arc*_*Rob 23 html javascript jquery dom
我正在与一些看似简单的事情进行一场战斗.我有一个[javascript]字符串,其中包含DOM元素,并且想要打开一个新窗口(window.open()?)并使用填充新窗口的字符串.即让浏览器获取字符串并将其转换为HTML.这可能吗?
Arc*_*her 56
是的,它可能......
var wnd = window.open("about:blank", "", "_blank");
wnd.document.write(html);
Run Code Online (Sandbox Code Playgroud)
这应该够了吧.
Archer的答案很好,但如果您愿意,可以在一个班轮内完成:
window.open("data:text/html;charset=utf-8,"+html, "", "_blank")
Run Code Online (Sandbox Code Playgroud)
window.open("data:text/xml;charset=utf-8,"+xml, "", "_blank")
Run Code Online (Sandbox Code Playgroud)
使用XML,确保字符串以<?xml version="1.0" encoding="UTF-8"?>并且具有根元素开头.如果没有,您可以轻松添加它:
window.open('data:text/xml;charset=utf-8,<?xml version="1.0" encoding="UTF-8"?><RootTag>'+xml+'</RootTag>', "", "_blank")
Run Code Online (Sandbox Code Playgroud)
小智 6
如果您需要新选项卡,可以使用它。
const win = window.open('about:blank', '_blank');
win.document.write('<h1>test</h1>');
win.focus();
Run Code Online (Sandbox Code Playgroud)
小智 5
Archer的回答是最好的方法。但是您需要关闭文档才能运行“htmlString”中的脚本。
var wnd = window.open("about:blank", "");
wnd.document.write(htmlString);
wnd.document.close();
Run Code Online (Sandbox Code Playgroud)