我有一个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;
}
Code已运行好几个月,但现在每当你尝试打印它时,只打印两个空白页。它在第二行抛出错误,无法读取未定义的属性“文档”,并且检查显示mywin未定义。
谷歌搜索没有产生任何有价值的结果,所以任何人都有任何线索为什么会发生这种情况?
答案 0 :(得分:5)
如果浏览器设置阻止创建新窗口,window.open
函数将返回undefined
。您唯一的选择是检查一个真值,否则显示一条消息,说明浏览器设置阻止窗口被打开。
var win = window.open(...);
if (win) {
win.document.write(...);
} else {
alert("Your browser prevented the window from opening.");
}
答案 1 :(得分:3)
我在非rails环境中遇到了同样的问题。我正在使用node的http-server,在localhost上工作。
问题是Chrome自动阻止来自localhost的弹出窗口。我去了设置并添加了“localhost”作为例外,现在一切都很好!
希望这有帮助