0

我的window.print()陈述一直表现得很奇怪,我最终将其缩小到我的 html 中的视频。我要澄清一下,打印对话框仅在页面刷新或警报后弹出(我觉得很奇怪),随后单击打印按钮会导致打印对话框的触发不一致且不稳定。

如果我将视频文件移出预期的目录,以便 html 找不到它们或删除视频标签,则打印功能可以完美运行。目前,这些视频直接位于 jquery 移动内容</div>标签的末尾,但我尝试在页面内容中移动它们而没有改变行为。

有没有人遇到过这个问题或知道我该如何解决?

编辑:尝试用 jquery 抓取视频并调用.remove()它们,看看我是否可以让它在点击时正确触发,但没有成功。

4

2 回答 2

0

也许@media 属性会有所帮助?

适合我的示例(请注意应用的样式):

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
        @media print {
             video { display: none; }
        }
    </style>
</head>
<body onload="window.print();">
    <h1>Sample Text</h1>
    <video width="320" height="240" controls>
        <source src="example_video_file.mp4" type="video/mp4">
        Your browser does not support the video tag.
    </video>
    <p>To be printed out</p>
</body>
</html>
于 2013-07-29T19:10:42.757 回答
0

调用这个函数作为这个 Chrome 错误的解决方法对我有用:

function printPage() {
    window.print();

    //workaround for Chrome bug - https://code.google.com/p/chromium/issues/detail?id=141633
    if (window.stop) {
        location.reload(); //triggering unload (e.g. reloading the page) makes the Print dialog appear
        window.stop(); //immediately stop reloading
    }
    return false;
}
于 2014-03-25T22:12:21.337 回答