使用javascript window.print()进行Safari打印问题

YuC*_*YuC 5 javascript printing safari

我在Safari上打印时遇到问题.我的系统是Windows 7,此功能在除Safari之外的所有其他浏览器中都能正常运行.情况如下:

window.onload = function(){
    console.log('before print');
    window.print();
}
Run Code Online (Sandbox Code Playgroud)

它不会输出登录控制台面板,但首先会出现打印页面,在打印页面中选择取消后,将输出日志.

有没有人提出这个问题?任何帮助将不胜感激.

更新

这是我的情况:我们需要打印一个页面,其内容可以由用户通过选中和取消选中复选框进行更改,并且只打印此页面的内容部分,因此我们创建一个仅包含内容的新页面用于印刷.在此页面中,我们需要隐藏用户未选择的不必要内容,因此我们需要在window.print()调用之前执行一些DOM操作.这console.log()只是观察的示例代码.我尝试添加一个<div id='test'>Test HTML</div>测试HTML并添加

var test = document.getElementById('test');
test.style.background = 'yellow';
Run Code Online (Sandbox Code Playgroud)

之前window.print();,它在我的Safari浏览器中显示相同的结果,"测试HTML"在我单击打印面板中的取消按钮之前不会变为黄色,所以这不仅仅是console.log问题.

更新

我在Windows 7上使用Safari 5.1.7(7534.57.2)

YuC*_*YuC 1

经过多次尝试,下面的代码可以工作,但我不知道原因,有人可以解释一下吗?或者这是 Safari 的一个 Bug?

window.onload = function() {
    $('body').html('After change');
    setTimeout(window.print, 1000);
};
Run Code Online (Sandbox Code Playgroud)