window.print() doesn't work!?

Discussion in 'Javascript' started by Craig, Feb 19, 2004.

  1. Craig

    Craig Guest

    First of all, this one is driving me crazy, so thanks in advance for any
    help!!

    I've got a javascript function in a parent document that generates an HTML
    document on the fly when a button is clicked... that generated popup
    contains a button that's supposed to print the contents of the popup window
    (self). However, the button won't print (nothing happens on click) from the
    newly generated popup to print the contents of the window... the complete
    source for the generated page is below, I've tried every combination I can
    think of, but absolutely nothing happens when I click the button... I tried
    the right-click print from the context menu, and everything comes up... so,
    the issue's in code somewhere! argh!

    <HTML>
    <HEAD>
    <TITLE>Generated 2/19/2004 at 14:18</TITLE>
    </HEAD>
    <BODY bgcolor='#FFFFFF' text='#000000' style='margin: 0em'>
    <DIV ALIGN='center'>
    <IMG SRC=graphs/ChartPic_000001.jpeg width=600 height=300>
    <form>
    <input type=button value="Print Document" onclick="window.print()">
    </form>
    </DIV>
    </BODY>
    </HTML>


    ...and just in case someone is interested in the code that generates this
    window in the parent page... it's below...



    <!-- Begin
    function popUp(URL,TITLE,IMGWIDTH,IMGHEIGHT,WINWIDTH,WINHEIGHT) {
    day = new Date();
    id = day.getTime();
    dateTime = day.getMonth()+1 +'/'+ day.getDate() +'/'+ day.getFullYear() +'
    at '+ day.getHours() +':'+ day.getMinutes();
    eval("newWindow = window.open('','"+ id
    +"','toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=0,wid
    th=" +WINWIDTH+ ",height=" +WINHEIGHT+ "')");
    newWindow.document.write("<HTML><HEAD><TITLE>Generated "+ dateTime
    +"</TITLE></HEAD><BODY bgcolor='#FFFFFF' text='#000000' style='margin:
    0em'><DIV ALIGN='center'><IMG SRC=" +URL+ " width=" +IMGWIDTH+ " height="
    +IMGHEIGHT+ "><form><input type=button value=\"Print Document\"
    onclick=\"window.print()\"></form></DIV></BODY></HTML>")
    newWindow.document.close
    }
    //-->
    </SCRIPT>
    Craig, Feb 19, 2004
    #1
    1. Advertising

  2. Craig

    Craig Guest

    OK, I did some additional testing, and if i view source, then save that to
    an .html and open it with NO changes - the code works...

    So, is there something (security?) keeping this function from working from a
    popup window? Is it because I've hidden the toolbar, status, etc?

    "Craig" <> wrote in message
    news:q%8Zb.26469$-kc.rr.com...
    > First of all, this one is driving me crazy, so thanks in advance for any
    > help!!
    >
    > I've got a javascript function in a parent document that generates an HTML
    > document on the fly when a button is clicked... that generated popup
    > contains a button that's supposed to print the contents of the popup

    window
    > (self). However, the button won't print (nothing happens on click) from

    the
    > newly generated popup to print the contents of the window... the complete
    > source for the generated page is below, I've tried every combination I can
    > think of, but absolutely nothing happens when I click the button... I

    tried
    > the right-click print from the context menu, and everything comes up...

    so,
    > the issue's in code somewhere! argh!
    >
    > <HTML>
    > <HEAD>
    > <TITLE>Generated 2/19/2004 at 14:18</TITLE>
    > </HEAD>
    > <BODY bgcolor='#FFFFFF' text='#000000' style='margin: 0em'>
    > <DIV ALIGN='center'>
    > <IMG SRC=graphs/ChartPic_000001.jpeg width=600 height=300>
    > <form>
    > <input type=button value="Print Document" onclick="window.print()">
    > </form>
    > </DIV>
    > </BODY>
    > </HTML>
    >
    >
    > ..and just in case someone is interested in the code that generates this
    > window in the parent page... it's below...
    >
    >
    >
    > <!-- Begin
    > function popUp(URL,TITLE,IMGWIDTH,IMGHEIGHT,WINWIDTH,WINHEIGHT) {
    > day = new Date();
    > id = day.getTime();
    > dateTime = day.getMonth()+1 +'/'+ day.getDate() +'/'+ day.getFullYear()

    +'
    > at '+ day.getHours() +':'+ day.getMinutes();
    > eval("newWindow = window.open('','"+ id
    >

    +"','toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=0,wid
    > th=" +WINWIDTH+ ",height=" +WINHEIGHT+ "')");
    > newWindow.document.write("<HTML><HEAD><TITLE>Generated "+ dateTime
    > +"</TITLE></HEAD><BODY bgcolor='#FFFFFF' text='#000000' style='margin:
    > 0em'><DIV ALIGN='center'><IMG SRC=" +URL+ " width=" +IMGWIDTH+ " height="
    > +IMGHEIGHT+ "><form><input type=button value=\"Print Document\"
    > onclick=\"window.print()\"></form></DIV></BODY></HTML>")
    > newWindow.document.close
    > }
    > //-->
    > </SCRIPT>
    >
    >
    Craig, Feb 19, 2004
    #2
    1. Advertising

  3. "Craig" <> wrote in message
    news:q%8Zb.26469$-kc.rr.com...
    <snip>
    > eval("newWindow = window.open('','"+ id
    >+"','toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,
    >resizable=0,width=" +WINWIDTH+ ",height=" +WINHEIGHT+ "')");


    This operation does not require the - eval - function. eval is almost
    never needed in javascript.

    <URL: http://jibbering.com/faq/#FAQ4_40 >

    newWindow = window.open('', id,
    ('scrollbars=yes,resizable=yes,width=" +
    WINWIDTH+ ",height=" +
    WINHEIGHT));

    It is never a good idea to open a window that is not resizable, it makes
    no significant difference to the appearance and if not resizable the
    onus is on the programmer to open the window the correct size. There are
    so many variable (and some unknowable) factors involved in determining
    the correct size for a new window that no adequate
    cross-browser/configuration code exists for the task. So the only way of
    guaranteeing that the user will be able to access the content of a
    window is to leave it resizable and preferably enable the scrollbars. If
    any one window feature is specified then any unspecified features will
    be set to off.

    <snip>
    > newWindow.document.close

    ^^^
    The close function of the document should be called to close the
    document. an expression that does no more that refer to it will not
    achieve that.

    <snip>

    Richard.
    Richard Cornford, Feb 19, 2004
    #3
  4. Craig

    Craig Guest

    Yes, Yes, and Yes... I agree with your resizable, I'm going to change that.

    More importantly, you're right about the close... since it wasn't called the
    document was hanging open and IE won't open the print dialog from js while
    the page is still loading... once I got that close on there correctly, it
    worked exactly as expected.

    Thanks so much!

    "Richard Cornford" <> wrote in message
    news:c139nb$fd3$1$...
    > "Craig" <> wrote in message
    > news:q%8Zb.26469$-kc.rr.com...
    > <snip>
    > > eval("newWindow = window.open('','"+ id
    > >+"','toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,
    > >resizable=0,width=" +WINWIDTH+ ",height=" +WINHEIGHT+ "')");

    >
    > This operation does not require the - eval - function. eval is almost
    > never needed in javascript.
    >
    > <URL: http://jibbering.com/faq/#FAQ4_40 >
    >
    > newWindow = window.open('', id,
    > ('scrollbars=yes,resizable=yes,width=" +
    > WINWIDTH+ ",height=" +
    > WINHEIGHT));
    >
    > It is never a good idea to open a window that is not resizable, it makes
    > no significant difference to the appearance and if not resizable the
    > onus is on the programmer to open the window the correct size. There are
    > so many variable (and some unknowable) factors involved in determining
    > the correct size for a new window that no adequate
    > cross-browser/configuration code exists for the task. So the only way of
    > guaranteeing that the user will be able to access the content of a
    > window is to leave it resizable and preferably enable the scrollbars. If
    > any one window feature is specified then any unspecified features will
    > be set to off.
    >
    > <snip>
    > > newWindow.document.close

    > ^^^
    > The close function of the document should be called to close the
    > document. an expression that does no more that refer to it will not
    > achieve that.
    >
    > <snip>
    >
    > Richard.
    >
    >
    Craig, Feb 19, 2004
    #4
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Replies:
    0
    Views:
    1,171
  2. keto
    Replies:
    0
    Views:
    897
  3. David Cournapeau

    print a vs print '%s' % a vs print '%f' a

    David Cournapeau, Dec 30, 2008, in forum: Python
    Replies:
    0
    Views:
    335
    David Cournapeau
    Dec 30, 2008
  4. Gilles T.
    Replies:
    1
    Views:
    161
    Jim Ley
    Jan 18, 2004
  5. Replies:
    1
    Views:
    117
    Randy Webb
    Apr 7, 2006
Loading...

Share This Page