当前位置: 首页 > 面试题库 >

如何检测window.print()完成

单于扬
2023-03-14
问题内容

在我的应用程序中,我尝试为用户打印出凭证页面,如下所示:

  var htm ="<div>Voucher Details</div>";
  $('#divprint').html(htm);
  window.setTimeout('window.print()',2000);

divprint”是div我的页面中的,用于存储有关凭证的信息。

它有效,并且打印页面弹出。但是,我希望用户一旦在浏览器的弹出式打印对话框中单击“ print”或“ close”,便可以升级该应用程序。

例如,我想在弹出窗口关闭后将用户重定向到另一个页面:

window.application.directtoantherpage();//a function which direct user to other page

如何确定何时关闭弹出的打印窗口或打印完成?


问题答案:

在FireFox和Internet Explorer中,您可以侦听打印后事件。

window.onafterprint = function(){
   console.log("Printing completed...");
}

可能可以使用window.matchMedia在其他浏览器中获得此功能。

(function() {

    var beforePrint = function() {
        console.log('Functionality to run before printing.');
    };

    var afterPrint = function() {
        console.log('Functionality to run after printing');
    };

    if (window.matchMedia) {
        var mediaQueryList = window.matchMedia('print');
        mediaQueryList.addListener(function(mql) {
            if (mql.matches) {
                beforePrint();
            } else {
                afterPrint();
            }
        });
    }

    window.onbeforeprint = beforePrint;
    window.onafterprint = afterPrint;

}());


 类似资料:
  • 问题内容: 在我的项目中,我具有文件上传功能。文件通过FTP上传。我需要配置一个侦听器,该侦听器将检查新文件并仅在文件上传完成后才调用脚本。因为如果我在检测到新文件后立即运行此脚本,它将开始处理未完全上载的文件,这将导致错误。谁能说出这在LINUX上是否可行,我该怎么做? 问题答案: 我会尝试使用inotify,事件代码为IN_CLOSE_WRITE。

  • 问题内容: 我正在一个拥有大量嵌入式youtube视频的网站上工作,客户端希望在视频停止播放时显示弹出窗口。 我看着youtube api,似乎有一种方法可以检测视频何时结束: http://code.google.com/apis/youtube/js_api_reference.html 但是我无法像在该页面上提到的那样嵌入视频,因为这些视频都已经在网站上(数千个通过粘贴嵌入代码手动添加)。

  • 问题内容: 我有一个页面,我可以在其中插入一些javascript / jquery来操纵输出。我对页面标记等没有任何其他控制。 我需要在页面上的每一个出现之后通过jquery添加一个额外的元素。问题是元素是通过在$(document).ready完成之后发生的现有页面上通过异步调用生成的。 本质上,我需要一种在页面加载并且后续的ajax调用完成之后调用我的jquery的方法。有没有一种方法可以检

  • 问题内容: 我有一个非常简单和标准的PHP强制下载脚本。 我如何检查是否/何时完成下载以便在客户端通知用户?我什至不需要实时显示进度,我只对非常具体的事件感兴趣:“下载完成时”。根据我的研究,由于没有事件,因此似乎必须从服务器端确定它,而且我认为不可能拦截浏览器事件。 因此,似乎最好的选择是通过某种客户端/服务器端交互比较发送到总字节的字节。我该如何检查从服务器发送的字节以进行PHP强制下载?是否

  • 我在两篇关于堆栈溢出的文章中读到过关于这个问题的文章,但它们没有详细说明。我相信这与在嘲笑中嵌套嘲笑有关(根据我读到的)。然而,我并没有看到或完全理解人们张贴的小片段。 我的测试类如下所示(省略了不必要的代码): 我需要调用的方法:

  • 我有一个片段使用了新的CoordinatorLayout/AppBarLayout/CollapsingToolBarLayout范例,我希望能够检测折叠工具栏何时完全展开,以便对它所在的整个片段执行操作,例如从堆栈中弹出片段并转到新的堆栈中,删除该片段。我有解散的代码工作,我只需要知道什么时候和什么时候不使用它。 提前感谢! 编辑:我还看到AppBarlayout.SetExpanded(...