在ipad / Iphone上发生javascript - window.print()问题

时间:2017-03-30 11:00:11

标签: javascript angularjs

我目前在尝试打印报告时遇到问题。我们正在使用Angularjs解决方案。我们为用户显示报告,当他们点击打印时,我们有模板切换。然后我们调用window.print()(通常会停止javascript代码执行)。然后在打印后我们将模板交换回显示器。

这目前适用于Mac上的chrome和safari。但是,当我们使用Ipad / Iphone时,模板交换,交换,然后出现打印并且打印预览不正确。

寻找我找到的答案: 人们谈论使用var mql = window.matchMedia(' print')然后使用add.listener(函数)并在函数中进行交换。下面的代码我能够让Ipad / Iphone交换到正确的模板并打印,但它不会换回。

VcrReportController.prototype.printReport = function () {
    var vm = this;
    var mql = window.matchMedia('print');
    var printHandler = function(mql){
        if (mql.matches){
            console.log('print');
            vm.template = 'displayTemplate'
        }
        else{
            console.log('not print');
        }
    }
    function changeTemplate() {
        var deferred = vm.$q.defer();
        vm.template = 'printTemplate';
        vm.$timeout(function () {
            deferred.resolve(true);
        },250);
        return deferred.promise;
    }
    changeTemplate()
        .then(function (response) {
            mql.addListener(printHandler);
            vm.$window.print();
        });

不是100%肯定听众的东西。人们可能用来处理这种情况的任何帮助或其他解决方案都会很棒。

谢谢,

0 个答案:

没有答案