【发布时间】:2013-01-17 16:35:22
【问题描述】:
我正在尝试提供一个按钮以在窗口上打开浏览器级别的打印对话框。我首先尝试了 window.print();在 <input> 上使用内联“onclick”,然后在使用 jQuery 的输入上使用 click() 函数,单击时都会出现相同的错误:
TypeError: 对象 [object global] 的属性“打印”不是函数
我应该指出这是一个弹出窗口,但我认为这并不重要,除非在父页面上使用 window.print() 的任何形式都可以正常工作。
似乎某处的窗口对象必须发生某些事情,所以我在控制台中做了以下操作:
window.name
“加入”
window.self
Window {top: Window, window: Window, location: Location, external: Object, chrome: Object…}
window.location
位置{赋值:函数,替换:函数,重新加载:函数,祖先起源: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" />
【问题讨论】:
-
如果您发布为按钮设置点击处理程序的代码,将会有很大帮助。
标签: javascript