我可以使用JavaScript将HTML发送到新的选项卡/窗口并加载CSS吗?

我可以使用JavaScript将HTML发送到新的选项卡/窗口并加载CSS吗?,javascript,html,Javascript,Html,我在一个页面中有一些JavaScript,它可以调用服务器,并获取一些HTML,我想在新的浏览器选项卡或窗口中显示这些HTML。我可以使用window.document.write(myHTML)将HTML放入新的容器中,但是HTML包含一些CSS和JavaScript,而新窗口不包含这些内容。有没有办法让浏览器获取HTML并对其进行全面评估 谢谢 Paul您能将您的示例javascript和正在编写的HTML发布到窗口中吗(或者是一个精简的测试用例,真的)?如果您正在使用newWindow.d

我在一个页面中有一些JavaScript,它可以调用服务器,并获取一些HTML,我想在新的浏览器选项卡或窗口中显示这些HTML。我可以使用window.document.write(myHTML)将HTML放入新的容器中,但是HTML包含一些CSS和JavaScript,而新窗口不包含这些内容。有没有办法让浏览器获取HTML并对其进行全面评估

谢谢


Paul

您能将您的示例javascript和正在编写的HTML发布到窗口中吗(或者是一个精简的测试用例,真的)?如果您正在使用newWindow.document.write编写完整的HTML文档(包括HTML/head/body元素),那么它应该可以工作。您的javascript看起来像这样吗

var newWindow = window.open();
newWindow.document.write("<html><head><script type='text/javascript' src='yourCode.js'></scr"+"ipt></head><body>Your content</body></html>");
newWindow.document.close();
var newWindow=window.open();
newWindow.document.write(“您的内容”);
newWindow.document.close();
功能弹出窗口(数据){
var mywindow=window.open(“”,'title Here','height=400,width=600');
mywindow.document.write('mydiv');
//外部Css在打印时不起作用
mywindow.document.write(“body{font-family:Arial}”);
mywindow.document.write(“”);
mywindow.document.write(数据);
mywindow.document.write(“”);
mywindow.print();
mywindow.close();
返回true;
}

这对我很有效。。代码在编辑器中似乎不起作用,但您可以在浏览器控制台中尝试

var newTab=窗口;
var pageContent=“您的html头应该在这里”;
pageContent+=“正文应该在这里”;
newTab.open().document.write(页面内容)
.heads{
字体大小:50px;
颜色:绿色;

}
是的,这正是我所拥有的,只是我的HTML包含一个样式表链接:页面显示在新窗口中,但没有应用任何样式。谢谢你的回复。如果你把你吐出来的HTML放到新窗口中,然后把它放在一个普通的HTML文件中进行测试,这样做有效吗?也许你只是打错了字或走错了路。
function Popup(data) {

   var mywindow = window.open('', 'title Here', 'height=400,width=600');
   mywindow.document.write('<html><head><title>my div</title>');

   //External Css will not work in print
   mywindow.document.write("<style>body{font-family:Arial}</style>");

   mywindow.document.write('</head><body><table>');
   mywindow.document.write(data);
   mywindow.document.write('</table></body></html>');

   mywindow.print();
   mywindow.close();

   return true;
 }