Ali*_*tad 4 javascript printing window call apply
好的,我在网上看了很多,但找不到答案.
我可以期待浏览器之间的CSS差异,但也存在JavaScript差异?
那么为什么这在IE8中有效:
window.print(); // works
Run Code Online (Sandbox Code Playgroud)
但是当我传递window.print给函数并调用它时,它在IE8中不起作用(在IE9中工作):
function callIt(f){
f.call();
};
callIt(window.print);
Run Code Online (Sandbox Code Playgroud)
这是一个已知的问题吗?
好吧它不起作用意味着它会简单地忽略它,没有javascript错误或任何东西.
抱歉,它出现此错误:
Object doesn't support this property or method
Run Code Online (Sandbox Code Playgroud)
我需要使用call或apply因为我需要传递上下文.我正在尝试创建一个可以传递函数的类,它可以调用它来传递上下文或参数.不要告诉我使用f() 这不是一个答案,因为它不能解决我的问题.问题是call和apply.
小智 10
似乎window.*函数是独立的类型而不是IE <9中的用户创建的函数.因此,它们没有得到任何Function.prototype.*.你会看到的
typeof alert === 'object'
function a(){}
typeof a === 'function'
Run Code Online (Sandbox Code Playgroud)
任何window.*功能都会发生这种情况.仅限IE <9.WTG Miscrosoft.
不过你可以试试
Function.prototype.call.call(window.print)
Run Code Online (Sandbox Code Playgroud)
看看它是否适合你.