我正在尝试提供一个按钮来在窗口上打开浏览器级别的打印对话框。我首先尝试了 window.print(); 在 an 上使用内联“onclick” <input>
,然后在使用 jQuery 的输入上使用 click() 函数,并且在单击时都给出相同的错误:
TypeError:对象[对象全局]的属性“打印”不是函数
我应该指出这是一个弹出窗口,但我认为这并不重要,除非在父页面上使用 window.print() 的任何形式都可以正常工作。
似乎某处的窗口对象必须发生某些事情,所以我在控制台中执行了以下操作:
窗口名称
“加入”
窗口.self
窗口{顶部:窗口,窗口:窗口,位置:位置,外部:对象,镀铬:对象...}
窗口位置
位置{分配:函数,替换:函数,重新加载:函数,祖先起源:DOMStringList,起源:“http://local.xxx.xxx:8080”…}
所以它看起来像窗口对象在那里并按预期定义。
我什至可以在同一个窗口对象上运行其他方法,如 close()、confirm()、alert()、scrollTo() 等,它们工作正常。那么为什么不打印()?
页面的内容似乎并不重要,我还要说我们没有使用 iFrame 或框架。我确实将弹出窗口的所有内容替换为
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head></head>
<body>Foo</body>
</html>
结果相同。所以我相当肯定我们的其他代码都没有干扰。
编辑
我用来触发 print() 的代码:
$('.foobar').click(function(){
window.print();
});
现在我只是在控制台中进行操作。
按钮
<input type="button" class="foobar" value="Print" />