我有一个使用protovis创建图表的div。 div有width: 100%
和height: 100%
,创建图表的代码使用$('#chart').width()
和$('#chart').height()
在呈现时获取div的大小,并用图表填充页面。我在窗口捕获resize事件并调整div和图表,以便在窗口调整大小时调整它。打印时触发调整大小事件
现在我需要打印。我希望当浏览器呈现打印机的页面时,它会发出一个调整大小,但它不会,至少Safari和Firefox不会。 Chrome会做一些奇怪的事情,只调整高度而不调整宽度。打印前是否有办法触发这种行为?
编辑。考虑以下html
<html>
<head>
<title>Resize</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$('#chart').resize(function() {
$(this).html('chart size is ' + $('#chart').width() + ' x ' + $('#chart').height());
})
});
$(window).resize(function() {
$('.resizable').resize();
});
</script>
<style type="text/css">
#chart { width: 100%; height: 100%; background: gray; border: 1px solid black;}
</style>
</head>
<body>
<div id="chart" class="resizable">
</div>
</body>
</html>
当我调整窗口的div的内容改变。当我打印它时,渲染过程不会触发resize事件。
打印支持的浏览器(无论是在什么获取印刷方面,使印刷发生的过程)是普遍薄弱的最好的。我很想看看有没有人提出一个很好的诀窍,但我怀疑你想要的通常是可能的。 – Pointy 2010-08-21 17:27:44
在这个问题上一直没有找到任何网上的东西。我可能不得不调整窗口的大小,然后打印页面。 – rmarimon 2010-08-21 17:46:04
你试过这个吗? –
pixelpalast
2018-02-12 21:53:13