Ответ 1
Да, возможно...
var wnd = window.open("about:blank", "", "_blank");
wnd.document.write(html);
Это должно сделать трюк.
У меня битва с чем-то вроде простого. У меня есть строка [javascript], в которой есть элементы DOM, и хотел бы открыть новое окно (window.open()?) И использовать строку, заполняющую новое окно. т.е. браузер берет строку и конвертирует ее в HTML на лету. Это возможно?
Да, возможно...
var wnd = window.open("about:blank", "", "_blank");
wnd.document.write(html);
Это должно сделать трюк.
Ответ Арчера - хороший, но вы можете сделать это в одном лайнере, если хотите:
window.open("data:text/html;charset=utf-8,"+html, "", "_blank")
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")
Лучше всего ответ Арчера. Но вам нужно закрыть документ для запуска скриптов внутри "htmlString".
var wnd = window.open("about:blank", "");
wnd.document.write(htmlString);
wnd.document.close();