打印对话框关闭后自动转到上一个窗口

时间:2016-08-29 08:12:42

标签: javascript jquery codeigniter-3

我有一个html元素所在的页面,最后通过javascript调用print函数。

<script type="text/javascript">
$(document).ready(function(){
    window.print();
    window.history.back();
})
</script>

现在我有这个代码在打印后重定向用户或点击取消。它适用于本地,但在实时服务器中,它会立即转到上一页。

3 个答案:

答案 0 :(得分:3)

使用此功能返回上一页

$(document).ready(function() {
   window.print();
   history.go(-1); 
});

或:

$(document).ready(function() {
   window.print();
   history.back(); 
});

答案 1 :(得分:2)

您可以尝试使用window.onafterprint功能。

  

用户打印或中止打印后会引发afterprint事件   对话框。

不幸的是,only works in FF & IE

因此,对于您的代码(仅适用于FF和IE),我将尝试使用类似的内容:

<script type="text/javascript">
    $(document).ready(function(){
        window.print();
    })
    window.onafterprint = function() {
        history.go(-1);
    };
</script>

现在,基于Webkit的浏览器使用matchMedia('print') ...
有点像...

var mediaQueryList = window.matchMedia('print');
mediaQueryList.addListener(function(mql) {
    if (mql.matches) {
        console.log('onbeforeprint equivalent');
    } else {
        console.log('onafterprint equivalent');
    }
});

来源:
WindowEventHandlers.onafterprint
Detecting Print Requests with JavaScript
onbeforeprint and onafterprint is not working in Chrome and IE?

答案 2 :(得分:0)

也许你应该尝试在新窗口中打印?

这样的事情:

    var myWindow=window.open('','','width=200,height=100');
    myWindow.document.write("<p>This is 'myWindow'</p>");
    myWindow.document.close();
    myWindow.focus();
    myWindow.print();
    myWindow.close();
    myWindow.history.back();

参考:JavaScript window.print() not working