Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 捕获CTRL+;并调用自定义函数进行打印_Javascript_Javascript Events - Fatal编程技术网

Javascript 捕获CTRL+;并调用自定义函数进行打印

Javascript 捕获CTRL+;并调用自定义函数进行打印,javascript,javascript-events,Javascript,Javascript Events,我有一个网页,我在弹出窗口中显示账单信息。此弹出窗口是一个DIV,而不是一个新窗口。 在弹出窗口中有两个div,一个是按住打印和关闭按钮 另一个是保持一个iframe 原因是当单击“打印”按钮时,会打印iframe的内容,从而不会打印“打印”和“关闭”按钮。就像 <div id='popupandcenterscreen'> <div>... print and close buttons</div> <div><iframe><

我有一个网页,我在弹出窗口中显示账单信息。此弹出窗口是一个DIV,而不是一个新窗口。 在弹出窗口中有两个div,一个是按住打印和关闭按钮 另一个是保持一个iframe

原因是当单击“打印”按钮时,会打印iframe的内容,从而不会打印“打印”和“关闭”按钮。就像

<div id='popupandcenterscreen'>
<div>... print and close buttons</div>
<div><iframe></div>
</div>

... 打印和关闭按钮
因此,它是一个列表,其中每个条目在单击时都有一个账单链接。弹出窗口显示,其中加载了一个iframe以显示账单信息

当用户单击“打印”按钮时,我们只打印iframe的文档内容

但是当用户使用CTRL+p时,整个窗口(包括背景父窗口和这个弹出div)都会被打印出来

我的想法是在弹出窗口打开时捕获ctrl+p,并只打印iframe内容


这怎么可能呢?

我认为更好的解决方案是通过CSS中的
@media
规则控制渲染,或者根据媒体类型包含不同的样式表。然后,您可以使用CSS属性(如
display
)隐藏一些元素以进行打印,甚至为它们指定不同的大小和位置。

我认为更好的解决方案是通过CSS中的
@media
规则控制渲染,或者根据媒体类型包括不同的样式表。然后,您可以使用CSS属性(如
display
)隐藏一些元素以进行打印,甚至可以为它们指定不同的大小和位置。

使用CSS比JavaScript更好

最终的结果可能与另一个相同,但在Css中会更容易,并且“黑客”更少

如果在用户按下Ctrl+p时,只使用JavaScript对打印时要显示的元素进行排序,那么就可以了


但是,如果用户在菜单中单击“打印”,则需要打印样式表来整理页面。

使用Css比JavaScript更好

最终的结果可能与另一个相同,但在Css中会更容易,并且“黑客”更少

如果在用户按下Ctrl+p时,只使用JavaScript对打印时要显示的元素进行排序,那么就可以了


但是,如果用户单击菜单中的“打印”,则需要打印样式表来整理页面。

只想指向描述此主题的文章+1这正是打印样式表的用途。不要试图用不可靠的JavaScript.ok攻击它。我认为这将是一个10行脚本的问题,我觉得这比用css修复容易。但这并不容易。首先,您不知道某个用户代理用于打印的密钥组合。其次,用户代理可以提供调用打印命令的其他方式(例如,通过菜单单击)。javascript没有标准化的方法来捕获打印命令,这是有充分理由的。只需向用户代理提供足够的提示,以产生良好的输出,并让它完成其工作。嗯哼。对没错。好的然后。。。无论如何,我做了一个选择。谢谢。我只是想指出一篇描述这个主题的文章+1这正是打印样式表的用途。不要试图用不可靠的JavaScript.ok攻击它。我认为这将是一个10行脚本的问题,我觉得这比用css修复容易。但这并不容易。首先,您不知道某个用户代理用于打印的密钥组合。其次,用户代理可以提供调用打印命令的其他方式(例如,通过菜单单击)。javascript没有标准化的方法来捕获打印命令,这是有充分理由的。只需向用户代理提供足够的提示,以产生良好的输出,并让它完成其工作。嗯哼。对没错。好的然后。。。无论如何,我做了一个选择。非常感谢。