window.print()在html视频标签上中断

时间:2013-07-29 17:19:21

标签: javascript jquery html dom video

我的window.print()声明一直很奇怪,我最终将其缩小到我的html中的视频。我会澄清奇怪的是,打印对话框只会在页面刷新后或警报后弹出(我发现很奇怪),随后点击打印按钮会导致打印对话框出现不一致和不稳定的触发。

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

有没有人遇到过这个问题或者我知道如何修复它?

编辑:尝试使用jquery抓取视频并在其上调用.remove(),看看我是否可以在点击时正常启动它,但是没有去。

2 个答案:

答案 0 :(得分: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>

答案 1 :(得分: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;
}