[whatwg] window.print() when printing is not supported
Markus Ernst
derernst at gmx.ch
Mon Dec 28 13:14:40 PST 2009
Michael A. Puls II schrieb:
> On Mon, 28 Dec 2009 14:39:06 -0500, Michael A. Puls II
> <shadow2531 at gmail.com> wrote:
>
>> On Mon, 28 Dec 2009 12:08:48 -0500, Boris Zbarsky <bzbarsky at mit.edu>
>> wrote:
>>
>>> On 12/28/09 9:54 AM, Michael A. Puls II wrote:
>>>> As for window.print(), what if it returns false if printing is not
>>>> supported?
>>>
>>> It might be better as |true| (crappy API issues aside), because
>>> otherwise if a page writes |if (window.print())| it'll get false in
>>> all existing browsers, no?
>>
>> Ah, I see. Good point.
>
> Since making print() return something isn't going to help with older UAs
> and returning true would feel backwards, instead of:
>
> if (window.print()) {
> alert("Printing is not supported");
> }
>
> , we could do this:
>
> if (typeof navigator.printingEnabled === "function" &&
> !navigator.printingEnabled()) {
> alert("Printing is not supported");
> } else {
> window.print();
> }
>
> It's more verbose though and I'm not sure any will like it. But, tossing
> it out there.
>
What about:
if (!window.print) {
alert("Printing is not supported"); [1]
} else {
window.print();
}
This is possible if - one of Ollis initial proposals - browsers which
don't support window.print() do not have the print method at all. That
is backwards compatible, as legacy Handheld, TV and whatever UAs, that
may have a however-working print method, just behave the same way they
always did.
[1] I'd actually prefer something like:
body.onload = function() {
if (window.print) {
// Code that creates the print button
// and adds it to the appropriate parent element
}
}
More information about the whatwg
mailing list