我有一个简单的HTML代码来打印页面。代码如下:
<!DOCTYPE html>
<html>
<head>
<script>
function printPage()
{
var w = window.open("http://www.sigmaaldrich.com/catalog/CofADocRequest.do?symbol=209104&LotNo=MKBP0842V&brandTest=SIGMA","_self");
window.focus();
window.print();
}
</script>
</head>
<body >
<input type="button" onclick="printPage()" value="print a div!" />
</body>
</html>代码的作用是,它显示一个按钮,当单击该按钮时,它会调用一个函数。该函数使用open()通过“_self”参数在同一页面中打开一个新的URL。
正如我们在代码中看到的,print()是在调用open方法之后调用的。但在我的浏览器IE11中,打印弹出窗口是在加载页面之前显示的。由于这个原因,我没有打印正确的页面。
有人能帮我这个忙吗。
发布于 2014-11-23 20:48:58
问题是window引用的是当前窗口,也就是原始窗口。通过在self中打开一个新窗口来替换页面,这基本上是一个重定向。如果您通过弹出窗口打开它,并将其打印为w.print(),那么您将遇到跨域安全错误。
您可以使用带有代理的iframe,如下所示的How do print specific content inside the iframe和How do print specific content inside the iframe
https://stackoverflow.com/questions/27088967
复制相似问题