2010-08-21 79 views
9

我有一个使用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事件。

+1

打印支持的浏览器(无论是在什么获取印刷方面,使印刷发生的过程)是普遍薄弱的最好的。我很想看看有没有人提出一个很好的诀窍,但我怀疑你想要的通常是可能的。 – Pointy 2010-08-21 17:27:44

+0

在这个问题上一直没有找到任何网上的东西。我可能不得不调整窗口的大小,然后打印页面。 – rmarimon 2010-08-21 17:46:04

+0

你试过这个吗? pixelpalast 2018-02-12 21:53:13

回答

0

也许

<style type="text/css"> 
     #chart { width: 100%; height: 100%; background: gray; border: 1px solid black;} 
</style> 

<style type="text/css" media="print"> 
     #chart { width: 100%; height: 98%; background: gray; border: 1px solid black;} 
</style> 
+0

我花了很长时间去检查,但一般不起作用。它仅适用于铬合金,并且不会改变高度或宽度。 – rmarimon 2010-08-31 23:59:39

+0

downvoted,因为这没有回答问题(如何触发'resize'事件) – adamdport 2017-08-07 15:38:15

+0

@adamdport啊你的意思是回答X/Y问题的建议,回答底层问题应该downvote?那么至少你打扰评论投票... – mplungjan 2017-08-07 15:46:26

相关问题