Javascript window.open返回undefined

use*_*331 4 javascript printing ruby-on-rails ruby-on-rails-3.2

我有一个Rails 3.2站点,并使用突然停止工作的javascript打印例程.这是我的打印例程代码:

function print() {
    var mywin = window.open('', '', '');
    mywin.document.write('<body><link href="/assets/application.css" media="all"    rel="stylesheet" type="text/css" />' + document.getElementsByClassName('fields')[0].innerHTML + '</body>');
    mywin.print();
    mywin.close();
    return false;
}
Run Code Online (Sandbox Code Playgroud)

代码已运行好几个月了,但现在每当你尝试打印它时,只打印两个空白页.它在第二行引发错误,无法读取未定义的属性"文档",并且检查显示mywin未定义.

谷歌搜索没有产生任何有价值的结果,所以任何人都有任何线索为什么会发生这种情况?

Gre*_*rdt 5

如果浏览器设置阻止创建新窗口,则该window.open函数返回undefined.您唯一的选择是检查truthy值,否则显示一条消息,说明浏览器设置阻止打开窗口.

var win = window.open(...);

if (win) {
    win.document.write(...);
} else {
    alert("Your browser prevented the window from opening.");
}
Run Code Online (Sandbox Code Playgroud)

  • 它虽然没有被封锁.一个新的选项卡打开并触发打印,它只是内容是空白的,因为它无法访问要写入的新窗口的文档. (4认同)