Могу ли я открыть новое окно и заполнить его строковой переменной?

У меня битва с чем-то вроде простого. У меня есть строка [javascript], в которой есть элементы DOM, и хотел бы открыть новое окно (window.open()?) И ​​использовать строку, заполняющую новое окно. т.е. браузер берет строку и конвертирует ее в HTML на лету. Это возможно?

Ответы

Ответ 1

Да, возможно...

var wnd = window.open("about:blank", "", "_blank");
wnd.document.write(html);

Это должно сделать трюк.

Ответ 2

HTML

Ответ Арчера - хороший, но вы можете сделать это в одном лайнере, если хотите:

window.open("data:text/html;charset=utf-8,"+html, "", "_blank")

Открытие XML?

window.open("data:text/xml;charset=utf-8,"+xml, "", "_blank")

С 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")

Ответ 3

Лучше всего ответ Арчера. Но вам нужно закрыть документ для запуска скриптов внутри "htmlString".

 var wnd = window.open("about:blank", "");
        wnd.document.write(htmlString);
        wnd.document.close();