Disable printing of flash in favour of internal content

Discussion in 'HTML' started by Neo Geshel, Mar 16, 2007.

  1. Neo Geshel

    Neo Geshel Guest

    Greetings.

    BACKGROUND:

    My sites are pure XHTML 1.1 with CSS 2.1 for markup. My pages are
    delivered as application/xhtml+xml for all non-MS web clients, and as
    text/xml for all MS web clients (Internet Explorer).

    My flash content was originally brought in via the “flash satay†method,
    but I have since used some server-side magic do deliver one <object> tag
    for IE and another <object> tag for non-IE clients. That way, IE gets
    its codebase and classid attributes, which would cause any non-IE client
    to ignore the object element entirely.

    PROBLEM:

    My problem now is with printing. I can’t for the life of me figure out
    how to get browsers to IGNORE the object element when printing - so that
    they grab the alternative content inside of the object element instead.

    You see, inside of my object element is a very nicely formatted header
    element (h1 to be exact), and I want this to appear when printing, but
    not in any other case. I also want this to appear when the object tag
    fails (for example, when someone does not have Flash installed).

    I would normally consider using SWFObject, but it does not make use of
    standards-compliant JavaScript (it uses document.write), and therefore
    will break when pages make use of the application/xhtml+xml mime type.
    In addition, it craps out when people fail to have JS turned on, or
    whose browsers (cellphones, handhelds) do not make use of JS. My sites
    are meant to be fully compatible and accessible! I am not looking to
    have content created by JS!

    IMPORTANT:

    Please understand, I am looking for a way, during printing, for the
    printer to ignore the object element itself in favour of the h1 element
    that exists inside the object element. This h1 element exists inside the
    object element because it is the “graceful degradation†content for
    anyone without Flash (or the correct version of Flash). I am not willing
    to entertain any other arrangement of elements (or element creation via
    JavaScript) unless it is equally as backward-compatible, elegant and
    standards-compliant. Preferably, I am looking for a CSS solution.

    TIA.
    ...Geshel
    --
    *********************************************************************
    My return e-mail address is an automatically monitored spam honeypot.
    Do not send e-mail there unless you wish to be reported as a spammer.
    Please send all e-mail to my first name at my last name dot org, with
    a subject-line of “NEWSGROUP REPLY FOR NEO GESHEL†(all uppercase).
    *********************************************************************
     
    Neo Geshel, Mar 16, 2007
    #1
    1. Advertising

  2. Neo Geshel

    cwdjrxyz Guest

    On Mar 15, 7:00 pm, Neo Geshel <> wrote:
    > Greetings.
    >
    > BACKGROUND:
    >
    > My sites are pure XHTML 1.1 with CSS 2.1 for markup. My pages are
    > delivered as application/xhtml+xml for all non-MS web clients, and as
    > text/xml for all MS web clients (Internet Explorer).
    >
    > My flash content was originally brought in via the "flash satay" method,
    > but I have since used some server-side magic do deliver one <object> tag
    > for IE and another <object> tag for non-IE clients. That way, IE gets
    > its codebase and classid attributes, which would cause any non-IE client
    > to ignore the object element entirely.
    >
    > PROBLEM:
    >
    > My problem now is with printing. I can't for the life of me figure out
    > how to get browsers to IGNORE the object element when printing - so that
    > they grab the alternative content inside of the object element instead.
    >
    > You see, inside of my object element is a very nicely formatted header
    > element (h1 to be exact), and I want this to appear when printing, but
    > not in any other case. I also want this to appear when the object tag
    > fails (for example, when someone does not have Flash installed).
    >
    > I would normally consider using SWFObject, but it does not make use of
    > standards-compliant JavaScript (it uses document.write), and therefore
    > will break when pages make use of the application/xhtml+xml mime type.
    > In addition, it craps out when people fail to have JS turned on, or
    > whose browsers (cellphones, handhelds) do not make use of JS. My sites
    > are meant to be fully compatible and accessible! I am not looking to
    > have content created by JS!
    >
    > IMPORTANT:
    >
    > Please understand, I am looking for a way, during printing, for the
    > printer to ignore the object element itself in favour of the h1 element
    > that exists inside the object element. This h1 element exists inside the
    > object element because it is the "graceful degradation" content for
    > anyone without Flash (or the correct version of Flash). I am not willing
    > to entertain any other arrangement of elements (or element creation via
    > JavaScript) unless it is equally as backward-compatible, elegant and
    > standards-compliant. Preferably, I am looking for a CSS solution.
    >
    > TIA.
    > ...Geshel
    > --
    > *********************************************************************
    > My return e-mail address is an automatically monitored spam honeypot.
    > Do not send e-mail there unless you wish to be reported as a spammer.
    > Please send all e-mail to my first name at my last name dot org, with
    > a subject-line of "NEWSGROUP REPLY FOR NEO GESHEL" (all uppercase).
    > *********************************************************************


    It is very difficult to respond to you without the source code
    available to view. However, since I have a working flash page up that
    is at the xhtml 1.1 level, I will point you to it so that you can see
    if anything there will help you. The page is at
    http://www.cwdjr.info/video_extreme/cancanFLV.php . The source code
    you get will be xhtml 1.1 for browsers such as recent Firefox, Opera,
    Seamonkey, and Mozilla that say they will at least accept 1.1 in the
    header exchange. The page is served as html 4.01 strict to other
    browsers, some of which might support xhtml 1.1, but do not say so in
    the header exchange. The IE browsers get served html 4.01, for
    example.

    Microsoft conditional comments are used to route to one object path
    for IE and close relatives such as MSN and ATT/Yahoo DSL browsers.
    Thus you can make each path completely different if you wish, and you
    do not have to use script to do so. It is up to you to see if this
    approach might help with your printer problem.

    Please note the high resolution video is designed for DSL. A loading
    status bar built into the control bar generated when coding the swf
    and flv files shows download progress. Also the swf file is rather
    small as it is just a container file that generates controls etc. The
    actual video is a separate swf which is large. This is the modern
    method for using flash video and is now heavily used for videos by
    Google, YouTube, MySpace, and several news sites.
     
    cwdjrxyz, Mar 16, 2007
    #2
    1. Advertising

  3. Neo Geshel

    cwdjrxyz Guest

    On Mar 15, 9:04 pm, "cwdjrxyz" <> wrote:


    >The actual video is a separate swf which is large. This is the modern
    > method for using flash video and is now heavily used for videos by
    > Google, YouTube, MySpace, and several news sites.


    Correction: The actual video is a separate flv (flash video) file,
    which is large.
     
    cwdjrxyz, Mar 16, 2007
    #3
  4. Neo Geshel

    cwdjrxyz Guest

    On Mar 15, 9:04 pm, "cwdjrxyz" <> wrote:
    > On Mar 15, 7:00 pm, Neo Geshel <> wrote:
    >
    >
    >
    > > Greetings.

    >
    > > BACKGROUND:

    >
    > > My sites are pure XHTML 1.1 with CSS 2.1 for markup. My pages are
    > > delivered as application/xhtml+xml for all non-MS web clients, and as
    > > text/xml for all MS web clients (Internet Explorer).

    >
    > > My flash content was originally brought in via the "flash satay" method,
    > > but I have since used some server-side magic do deliver one <object> tag
    > > for IE and another <object> tag for non-IE clients. That way, IE gets
    > > its codebase and classid attributes, which would cause any non-IE client
    > > to ignore the object element entirely.

    >
    > > PROBLEM:

    >
    > > My problem now is with printing. I can't for the life of me figure out
    > > how to get browsers to IGNORE the object element when printing - so that
    > > they grab the alternative content inside of the object element instead.

    >
    > > You see, inside of my object element is a very nicely formatted header
    > > element (h1 to be exact), and I want this to appear when printing, but
    > > not in any other case. I also want this to appear when the object tag
    > > fails (for example, when someone does not have Flash installed).

    >
    > > I would normally consider using SWFObject, but it does not make use of
    > > standards-compliant JavaScript (it uses document.write), and therefore
    > > will break when pages make use of the application/xhtml+xml mime type.
    > > In addition, it craps out when people fail to have JS turned on, or
    > > whose browsers (cellphones, handhelds) do not make use of JS. My sites
    > > are meant to be fully compatible and accessible! I am not looking to
    > > have content created by JS!

    >
    > > IMPORTANT:

    >
    > > Please understand, I am looking for a way, during printing, for the
    > > printer to ignore the object element itself in favour of the h1 element
    > > that exists inside the object element. This h1 element exists inside the
    > > object element because it is the "graceful degradation" content for
    > > anyone without Flash (or the correct version of Flash). I am not willing
    > > to entertain any other arrangement of elements (or element creation via
    > > JavaScript) unless it is equally as backward-compatible, elegant and
    > > standards-compliant. Preferably, I am looking for a CSS solution.

    >
    > > TIA.
    > > ...Geshel
    > > --
    > > *********************************************************************
    > > My return e-mail address is an automatically monitored spam honeypot.
    > > Do not send e-mail there unless you wish to be reported as a spammer.
    > > Please send all e-mail to my first name at my last name dot org, with
    > > a subject-line of "NEWSGROUP REPLY FOR NEO GESHEL" (all uppercase).
    > > *********************************************************************

    >
    > It is very difficult to respond to you without the source code
    > available to view. However, since I have a working flash page up that
    > is at the xhtml 1.1 level, I will point you to it so that you can see
    > if anything there will help you. The page is athttp://www.cwdjr.info/video_extreme/cancanFLV.php. The source code
    > you get will be xhtml 1.1 for browsers such as recent Firefox, Opera,
    > Seamonkey, and Mozilla that say they will at least accept 1.1 in the
    > header exchange. The page is served as html 4.01 strict to other
    > browsers, some of which might support xhtml 1.1, but do not say so in
    > the header exchange. The IE browsers get served html 4.01, for
    > example.
    >
    > Microsoft conditional comments are used to route to one object path
    > for IE and close relatives such as MSN and ATT/Yahoo DSL browsers.
    > Thus you can make each path completely different if you wish, and you
    > do not have to use script to do so. It is up to you to see if this
    > approach might help with your printer problem.
    >
    > Please note the high resolution video is designed for DSL. A loading
    > status bar built into the control bar generated when coding the swf
    > and flv files shows download progress. Also the swf file is rather
    > small as it is just a container file that generates controls etc. The
    > actual video is a separate flv which is large. This is the modern
    > method for using flash video and is now heavily used for videos by
    > Google, YouTube, MySpace, and several news sites.


    Another thing that is sometimes useful is to include text when
    encoding the swf/flv. For instance see http://www.cwdjr.info/video_extreme/cancanFLV2.php
    .. The text in this case is part of the flv. In some cases people want
    to print out the flash object. To do this you right click on the flash
    image and select to print. This gives you a print of the area of the
    flash image and nothing else on the page. Thus a text describing what
    the flash image is often is useful. Of course when you print the whole
    page in the normal manner, the flash object is not printed at all for
    the way most printers are set up, just as one usually does not print
    background color to save ink and avoid slower printing than necessary.
     
    cwdjrxyz, Mar 16, 2007
    #4
  5. Neo Geshel

    Neo Geshel Guest

    cwdjrxyz wrote:
    > On Mar 15, 7:00 pm, Neo Geshel <> wrote:
    >> Greetings.
    >>
    >> BACKGROUND:
    >>
    >> My sites are pure XHTML 1.1 with CSS 2.1 for markup. My pages are
    >> delivered as application/xhtml+xml for all non-MS web clients, and as
    >> text/xml for all MS web clients (Internet Explorer).
    >>
    >> My flash content was originally brought in via the "flash satay" method,
    >> but I have since used some server-side magic do deliver one <object> tag
    >> for IE and another <object> tag for non-IE clients. That way, IE gets
    >> its codebase and classid attributes, which would cause any non-IE client
    >> to ignore the object element entirely.
    >>
    >> PROBLEM:
    >>
    >> My problem now is with printing. I can't for the life of me figure out
    >> how to get browsers to IGNORE the object element when printing - so that
    >> they grab the alternative content inside of the object element instead.
    >>
    >> You see, inside of my object element is a very nicely formatted header
    >> element (h1 to be exact), and I want this to appear when printing, but
    >> not in any other case. I also want this to appear when the object tag
    >> fails (for example, when someone does not have Flash installed).
    >>
    >> I would normally consider using SWFObject, but it does not make use of
    >> standards-compliant JavaScript (it uses document.write), and therefore
    >> will break when pages make use of the application/xhtml+xml mime type.
    >> In addition, it craps out when people fail to have JS turned on, or
    >> whose browsers (cellphones, handhelds) do not make use of JS. My sites
    >> are meant to be fully compatible and accessible! I am not looking to
    >> have content created by JS!
    >>
    >> IMPORTANT:
    >>
    >> Please understand, I am looking for a way, during printing, for the
    >> printer to ignore the object element itself in favour of the h1 element
    >> that exists inside the object element. This h1 element exists inside the
    >> object element because it is the "graceful degradation" content for
    >> anyone without Flash (or the correct version of Flash). I am not willing
    >> to entertain any other arrangement of elements (or element creation via
    >> JavaScript) unless it is equally as backward-compatible, elegant and
    >> standards-compliant. Preferably, I am looking for a CSS solution.
    >>
    >> TIA.
    >> ...Geshel
    >> --
    >> *********************************************************************
    >> My return e-mail address is an automatically monitored spam honeypot.
    >> Do not send e-mail there unless you wish to be reported as a spammer.
    >> Please send all e-mail to my first name at my last name dot org, with
    >> a subject-line of "NEWSGROUP REPLY FOR NEO GESHEL" (all uppercase).
    >> *********************************************************************

    >
    > It is very difficult to respond to you without the source code
    > available to view. However, since I have a working flash page up that
    > is at the xhtml 1.1 level, I will point you to it so that you can see
    > if anything there will help you. The page is at
    > http://www.cwdjr.info/video_extreme/cancanFLV.php . The source code
    > you get will be xhtml 1.1 for browsers such as recent Firefox, Opera,
    > Seamonkey, and Mozilla that say they will at least accept 1.1 in the
    > header exchange. The page is served as html 4.01 strict to other
    > browsers, some of which might support xhtml 1.1, but do not say so in
    > the header exchange. The IE browsers get served html 4.01, for
    > example.
    >
    > Microsoft conditional comments are used to route to one object path
    > for IE and close relatives such as MSN and ATT/Yahoo DSL browsers.
    > Thus you can make each path completely different if you wish, and you
    > do not have to use script to do so. It is up to you to see if this
    > approach might help with your printer problem.
    >
    > Please note the high resolution video is designed for DSL. A loading
    > status bar built into the control bar generated when coding the swf
    > and flv files shows download progress. Also the swf file is rather
    > small as it is just a container file that generates controls etc. The
    > actual video is a separate swf which is large. This is the modern
    > method for using flash video and is now heavily used for videos by
    > Google, YouTube, MySpace, and several news sites.
    >


    Here is my code:

    <object id="head" type="application/x-shockwave-flash"
    data="/swf/header.swf" width="758" height="200">
    <param name="allowScriptAccess" value="sameDomain" />
    <param name="movie" value="/swf/header.swf" />
    <param name="quality" value="high" />
    <param name="bgcolor" value="#ffffff" />
    <h1><a href="/">Generic Corp</a></h1>
    </object>

    Simply put, when a browser goes to print, or provides a print preview, I
    want it to ignore the object element completely, in favour of the h1
    element inside of the object (the object’s alternative, or “graceful
    degradation†content).

    That is, I *DO NOT* want the object element to show up on either the
    print preview, or the actual print output at all. It should be as if the
    object element doesn’t even exist. However, I *DO* want the object’s
    “graceful degradation†content, the h1 (present for those who do not
    have Flash installed) to show up in the print preview AND the print output.

    TIA.
    ...Geshel
    --
    *********************************************************************
    My return e-mail address is an automatically monitored spam honeypot.
    Do not send e-mail there unless you wish to be reported as a spammer.
    Please send all e-mail to my first name at my last name dot org, with
    a subject-line of “NEWSGROUP REPLY FOR NEO GESHEL†(all uppercase).
    *********************************************************************
     
    Neo Geshel, Mar 16, 2007
    #5
  6. Neo Geshel

    cwdjrxyz Guest

    On Mar 16, 11:58 am, Neo Geshel <> wrote:
    > cwdjrxyz wrote:
    > > On Mar 15, 7:00 pm, Neo Geshel <> wrote:
    > >> Greetings.

    >
    > >> BACKGROUND:

    >
    > >> My sites are pure XHTML 1.1 with CSS 2.1 for markup. My pages are
    > >> delivered as application/xhtml+xml for all non-MS web clients, and as
    > >> text/xml for all MS web clients (Internet Explorer).

    >
    > >> My flash content was originally brought in via the "flash satay" method,
    > >> but I have since used some server-side magic do deliver one <object> tag
    > >> for IE and another <object> tag for non-IE clients. That way, IE gets
    > >> its codebase and classid attributes, which would cause any non-IE client
    > >> to ignore the object element entirely.

    >
    > >> PROBLEM:

    >
    > >> My problem now is with printing. I can't for the life of me figure out
    > >> how to get browsers to IGNORE the object element when printing - so that
    > >> they grab the alternative content inside of the object element instead.

    >
    > >> You see, inside of my object element is a very nicely formatted header
    > >> element (h1 to be exact), and I want this to appear when printing, but
    > >> not in any other case. I also want this to appear when the object tag
    > >> fails (for example, when someone does not have Flash installed).

    >
    > >> I would normally consider using SWFObject, but it does not make use of
    > >> standards-compliant JavaScript (it uses document.write), and therefore
    > >> will break when pages make use of the application/xhtml+xml mime type.
    > >> In addition, it craps out when people fail to have JS turned on, or
    > >> whose browsers (cellphones, handhelds) do not make use of JS. My sites
    > >> are meant to be fully compatible and accessible! I am not looking to
    > >> have content created by JS!

    >
    > >> IMPORTANT:

    >
    > >> Please understand, I am looking for a way, during printing, for the
    > >> printer to ignore the object element itself in favour of the h1 element
    > >> that exists inside the object element. This h1 element exists inside the
    > >> object element because it is the "graceful degradation" content for
    > >> anyone without Flash (or the correct version of Flash). I am not willing
    > >> to entertain any other arrangement of elements (or element creation via
    > >> JavaScript) unless it is equally as backward-compatible, elegant and
    > >> standards-compliant. Preferably, I am looking for a CSS solution.

    >
    > >> TIA.
    > >> ...Geshel
    > >> --
    > >> *********************************************************************
    > >> My return e-mail address is an automatically monitored spam honeypot.
    > >> Do not send e-mail there unless you wish to be reported as a spammer.
    > >> Please send all e-mail to my first name at my last name dot org, with
    > >> a subject-line of "NEWSGROUP REPLY FOR NEO GESHEL" (all uppercase).
    > >> *********************************************************************

    >
    > > It is very difficult to respond to you without the source code
    > > available to view. However, since I have a working flash page up that
    > > is at the xhtml 1.1 level, I will point you to it so that you can see
    > > if anything there will help you. The page is at
    > >http://www.cwdjr.info/video_extreme/cancanFLV.php. The source code
    > > you get will be xhtml 1.1 for browsers such as recent Firefox, Opera,
    > > Seamonkey, and Mozilla that say they will at least accept 1.1 in the
    > > header exchange. The page is served as html 4.01 strict to other
    > > browsers, some of which might support xhtml 1.1, but do not say so in
    > > the header exchange. The IE browsers get served html 4.01, for
    > > example.

    >
    > > Microsoft conditional comments are used to route to one object path
    > > for IE and close relatives such as MSN and ATT/Yahoo DSL browsers.
    > > Thus you can make each path completely different if you wish, and you
    > > do not have to use script to do so. It is up to you to see if this
    > > approach might help with your printer problem.

    >
    > > Please note the high resolution video is designed for DSL. A loading
    > > status bar built into the control bar generated when coding the swf
    > > and flv files shows download progress. Also the swf file is rather
    > > small as it is just a container file that generates controls etc. The
    > > actual video is a separate swf which is large. This is the modern
    > > method for using flash video and is now heavily used for videos by
    > > Google, YouTube, MySpace, and several news sites.

    >
    > Here is my code:
    >
    > <object id="head" type="application/x-shockwave-flash"
    > data="/swf/header.swf" width="758" height="200">
    > <param name="allowScriptAccess" value="sameDomain" />
    > <param name="movie" value="/swf/header.swf" />
    > <param name="quality" value="high" />
    > <param name="bgcolor" value="#ffffff" />
    > <h1><a href="/">Generic Corp</a></h1>
    > </object>
    >
    > Simply put, when a browser goes to print, or provides a print preview, I
    > want it to ignore the object element completely, in favour of the h1
    > element inside of the object (the object's alternative, or "graceful
    > degradation" content).
    >
    > That is, I *DO NOT* want the object element to show up on either the
    > print preview, or the actual print output at all. It should be as if the
    > object element doesn't even exist. However, I *DO* want the object's
    > "graceful degradation" content, the h1 (present for those who do not
    > have Flash installed) to show up in the print preview AND the print output.
    >
    > TIA.
    > ...Geshel
    > --
    > *********************************************************************
    > My return e-mail address is an automatically monitored spam honeypot.
    > Do not send e-mail there unless you wish to be reported as a spammer.
    > Please send all e-mail to my first name at my last name dot org, with
    > a subject-line of "NEWSGROUP REPLY FOR NEO GESHEL" (all uppercase).
    > *********************************************************************


    Your approach does not seem to work in adding the header within the
    object. I added a header to my second example in both the IE and non-
    IE path. The only browser I have that does not support flash is the
    W3C Amaya. When viewed on it, nothing shows as if the flash objects
    were not there at all. This tests only the non-IE path. I described
    earlier how printing responds to a flash object. It could be that the
    added header would work on an ActiveX object as used in the IE path,
    but I have no browser with full ActiveX support without flash to view
    the page - that would be an IE browser or close relative. Even if it
    does work, that would still leave a problem for the non-IE browsers.

    I suggest that you make a second page that appears as you want it for
    printing out. Then just link to it from the main page for those who
    want to print. The print page would have your header instead of the
    flash display, and anything else that would make the printed page look
    better. I have done this in the past for some of my pages that present
    problems in printing rather than go to elaborate means to revise the
    page for both viewing and printing. This method is quite common. For
    example, Yahoo email has a print view button that reformats the page
    for better printing of the eMail. Since server disc space is now dirt
    cheap, a bit more size for the added page is of no concern.

    I would not be much concerned about browsers that do not have flash.
    The reason so many major sites are now using flash is that more OSs
    and browsers support it than other players such as as WMP, Real, etc.
    Flash can be installed on many more OSs than can WMP, for example. In
    fact, if you buy a new computer, you likely will have to go to
    considerable trouble to uninstall flash, and the average computer user
    likely will never bother to do so. This has been so for several years.
    Flash is not my favorite format for high quality video, but I can see
    why it is so often used on large web sites designed to be viewed by
    the masses.
     
    cwdjrxyz, Mar 16, 2007
    #6
  7. Neo Geshel

    John Hosking Guest

    cwdjrxyz wrote:
    > On Mar 16, 11:58 am, Neo Geshel <> wrote:
    >
    >>
    >><object id="head" type="application/x-shockwave-flash"
    >>data="/swf/header.swf" width="758" height="200">
    >> <param name="allowScriptAccess" value="sameDomain" />
    >> <param name="movie" value="/swf/header.swf" />
    >> <param name="quality" value="high" />
    >> <param name="bgcolor" value="#ffffff" />
    >> <h1><a href="/">Generic Corp</a></h1>
    >></object>
    >>
    >>Simply put, when a browser goes to print, or provides a print preview, I
    >>want it to ignore the object element completely, in favour of the h1
    >>element inside of the object (the object's alternative, or "graceful
    >>degradation" content).
    >>
    >>That is, I *DO NOT* want the object element to show up on either the
    >>print preview, or the actual print output at all. It should be as if the
    >>object element doesn't even exist. However, I *DO* want the object's
    >>"graceful degradation" content, the h1 (present for those who do not
    >>have Flash installed) to show up in the print preview AND the print output.
    >>

    >
    > I suggest that you make a second page that appears as you want it for
    > printing out. Then just link to it from the main page for those who
    > want to print. The print page would have your header instead of the
    > flash display, and anything else that would make the printed page look
    > better.


    Does there have to be a completely separate page? Bend CSS to your will
    (assuming it's working in your users' browsers in the first place)?

    In the XHTML:
    <head>
    <link rel="Stylesheet" href="MyStyle.css" type="text/css" media="screen">
    <link rel="Stylesheet" href="MyStylePrint.css" type="text/css"
    media="print">

    <object blah blah...>
    <h1 class="flashthingy">Our company is dynamic</h1>

    In MyStyle.css:
    object#head {visibility:visible;}
    h1.flashthingy {display:none;}

    In MyStylePrint.css:
    object#head {visibility:hidden;}
    h1.flashthingy {display:block;}

    Whether you use visibility or display to hide the Flash object depends
    on its position and spacing relative to other elements. When I use CSS
    to hide a nav menu when printing, I often use visibility:hidden so as to
    preserve the layout. Sometimes, though, it's preferable to completely
    /hide/ the nav menu (display:none;) to /not/ preserve the layout. You'll
    have to study your design and see.

    Caveat: not sure this will work for you, so try it and test it well. I
    have no clue regarding <h1> or other texts in Flash objects so cannot
    help you (Neo) directly.

    HTH. GL.
    --
    John
    Distressed that Thunderbird will not let me post to multiple newsgroups.
     
    John Hosking, Mar 16, 2007
    #7
  8. Neo Geshel

    cwdjrxyz Guest

    On Mar 16, 4:58 pm, "cwdjrxyz" <> wrote:
    > On Mar 16, 11:58 am, Neo Geshel <> wrote:
    >
    >
    >
    > > cwdjrxyz wrote:
    > > > On Mar 15, 7:00 pm, Neo Geshel <> wrote:
    > > >> Greetings.

    >
    > > >> BACKGROUND:

    >
    > > >> My sites are pure XHTML 1.1 with CSS 2.1 for markup. My pages are
    > > >> delivered as application/xhtml+xml for all non-MS web clients, and as
    > > >> text/xml for all MS web clients (Internet Explorer).

    >
    > > >> My flash content was originally brought in via the "flash satay" method,
    > > >> but I have since used some server-side magic do deliver one <object> tag
    > > >> for IE and another <object> tag for non-IE clients. That way, IE gets
    > > >> its codebase and classid attributes, which would cause any non-IE client
    > > >> to ignore the object element entirely.

    >
    > > >> PROBLEM:

    >
    > > >> My problem now is with printing. I can't for the life of me figure out
    > > >> how to get browsers to IGNORE the object element when printing - so that
    > > >> they grab the alternative content inside of the object element instead.

    >
    > > >> You see, inside of my object element is a very nicely formatted header
    > > >> element (h1 to be exact), and I want this to appear when printing, but
    > > >> not in any other case. I also want this to appear when the object tag
    > > >> fails (for example, when someone does not have Flash installed).

    >
    > > >> I would normally consider using SWFObject, but it does not make use of
    > > >> standards-compliant JavaScript (it uses document.write), and therefore
    > > >> will break when pages make use of the application/xhtml+xml mime type.
    > > >> In addition, it craps out when people fail to have JS turned on, or
    > > >> whose browsers (cellphones, handhelds) do not make use of JS. My sites
    > > >> are meant to be fully compatible and accessible! I am not looking to
    > > >> have content created by JS!

    >
    > > >> IMPORTANT:

    >
    > > >> Please understand, I am looking for a way, during printing, for the
    > > >> printer to ignore the object element itself in favour of the h1 element
    > > >> that exists inside the object element. This h1 element exists inside the
    > > >> object element because it is the "graceful degradation" content for
    > > >> anyone without Flash (or the correct version of Flash). I am not willing
    > > >> to entertain any other arrangement of elements (or element creation via
    > > >> JavaScript) unless it is equally as backward-compatible, elegant and
    > > >> standards-compliant. Preferably, I am looking for a CSS solution.

    >
    > > >> TIA.
    > > >> ...Geshel
    > > >> --
    > > >> *********************************************************************
    > > >> My return e-mail address is an automatically monitored spam honeypot.
    > > >> Do not send e-mail there unless you wish to be reported as a spammer.
    > > >> Please send all e-mail to my first name at my last name dot org, with
    > > >> a subject-line of "NEWSGROUP REPLY FOR NEO GESHEL" (all uppercase).
    > > >> *********************************************************************

    >
    > > > It is very difficult to respond to you without the source code
    > > > available to view. However, since I have a working flash page up that
    > > > is at the xhtml 1.1 level, I will point you to it so that you can see
    > > > if anything there will help you. The page is at
    > > >http://www.cwdjr.info/video_extreme/cancanFLV.php. The source code
    > > > you get will be xhtml 1.1 for browsers such as recent Firefox, Opera,
    > > > Seamonkey, and Mozilla that say they will at least accept 1.1 in the
    > > > header exchange. The page is served as html 4.01 strict to other
    > > > browsers, some of which might support xhtml 1.1, but do not say so in
    > > > the header exchange. The IE browsers get served html 4.01, for
    > > > example.

    >
    > > > Microsoft conditional comments are used to route to one object path
    > > > for IE and close relatives such as MSN and ATT/Yahoo DSL browsers.
    > > > Thus you can make each path completely different if you wish, and you
    > > > do not have to use script to do so. It is up to you to see if this
    > > > approach might help with your printer problem.

    >
    > > > Please note the high resolution video is designed for DSL. A loading
    > > > status bar built into the control bar generated when coding the swf
    > > > and flv files shows download progress. Also the swf file is rather
    > > > small as it is just a container file that generates controls etc. The
    > > > actual video is a separate swf which is large. This is the modern
    > > > method for using flash video and is now heavily used for videos by
    > > > Google, YouTube, MySpace, and several news sites.

    >
    > > Here is my code:

    >
    > > <object id="head" type="application/x-shockwave-flash"
    > > data="/swf/header.swf" width="758" height="200">
    > > <param name="allowScriptAccess" value="sameDomain" />
    > > <param name="movie" value="/swf/header.swf" />
    > > <param name="quality" value="high" />
    > > <param name="bgcolor" value="#ffffff" />
    > > <h1><a href="/">Generic Corp</a></h1>
    > > </object>

    >
    > > Simply put, when a browser goes to print, or provides a print preview, I
    > > want it to ignore the object element completely, in favour of the h1
    > > element inside of the object (the object's alternative, or "graceful
    > > degradation" content).

    >
    > > That is, I *DO NOT* want the object element to show up on either the
    > > print preview, or the actual print output at all. It should be as if the
    > > object element doesn't even exist. However, I *DO* want the object's
    > > "graceful degradation" content, the h1 (present for those who do not
    > > have Flash installed) to show up in the print preview AND the print output.

    >
    > > TIA.
    > > ...Geshel
    > > --
    > > *********************************************************************
    > > My return e-mail address is an automatically monitored spam honeypot.
    > > Do not send e-mail there unless you wish to be reported as a spammer.
    > > Please send all e-mail to my first name at my last name dot org, with
    > > a subject-line of "NEWSGROUP REPLY FOR NEO GESHEL" (all uppercase).
    > > *********************************************************************

    >
    > Your approach does not seem to work in adding the header within the
    > object. I added a header to my second example in both the IE and non-
    > IE path. The only browser I have that does not support flash is the
    > W3C Amaya. When viewed on it, nothing shows as if the flash objects
    > were not there at all. This tests only the non-IE path. I described
    > earlier how printing responds to a flash object. It could be that the
    > added header would work on an ActiveX object as used in the IE path,
    > but I have no browser with full ActiveX support without flash to view
    > the page - that would be an IE browser or close relative. Even if it
    > does work, that would still leave a problem for the non-IE browsers.
    >
    > I suggest that you make a second page that appears as you want it for
    > printing out. Then just link to it from the main page for those who
    > want to print. The print page would have your header instead of the
    > flash display, and anything else that would make the printed page look
    > better. I have done this in the past for some of my pages that present
    > problems in printing rather than go to elaborate means to revise the
    > page for both viewing and printing. This method is quite common. For
    > example, Yahoo email has a print view button that reformats the page
    > for better printing of the eMail. Since server disc space is now dirt
    > cheap, a bit more size for the added page is of no concern.
    >
    > I would not be much concerned about browsers that do not have flash.
    > The reason so many major sites are now using flash is that more OSs
    > and browsers support it than other players such as as WMP, Real, etc.
    > Flash can be installed on many more OSs than can WMP, for example. In
    > fact, if you buy a new computer, you likely will have to go to
    > considerable trouble to uninstall flash, and the average computer user
    > likely will never bother to do so. This has been so for several years.
    > Flash is not my favorite format for high quality video, but I can see
    > why it is so often used on large web sites designed to be viewed by
    > the masses.


    If you can tolerate having your header just above the top of the flash
    image position when the flash image is present or not, the solution is
    simple. See http://www.cwdjr.info/video_extreme/cancanFLV2.php which
    has been modified. The header and flash objects are all in a division,
    with the header first. If you use the usual method of printing out and
    the flash image is present, the flash image is not shown and replaced
    by white space where it would be. However the header still shows.
    However, if flash is not supported , just the header is shown and
    printed out with no white space reserved for where the flash image
    would be. The header I used is "PEEK-A-BOO". I could very well live
    with this, but then I do not know the exact layout you have in mind
    and if it is important enough to you to justify a lot of extra
    complication.
     
    cwdjrxyz, Mar 17, 2007
    #8
  9. Neo Geshel

    Neo Geshel Guest

    John Hosking wrote:
    > cwdjrxyz wrote:
    >> On Mar 16, 11:58 am, Neo Geshel <> wrote:
    >>
    >>>
    >>> <object id="head" type="application/x-shockwave-flash"
    >>> data="/swf/header.swf" width="758" height="200">
    >>> <param name="allowScriptAccess" value="sameDomain" />
    >>> <param name="movie" value="/swf/header.swf" />
    >>> <param name="quality" value="high" />
    >>> <param name="bgcolor" value="#ffffff" />
    >>> <h1><a href="/">Generic Corp</a></h1>
    >>> </object>
    >>>
    >>> Simply put, when a browser goes to print, or provides a print preview, I
    >>> want it to ignore the object element completely, in favour of the h1
    >>> element inside of the object (the object's alternative, or "graceful
    >>> degradation" content).
    >>>
    >>> That is, I *DO NOT* want the object element to show up on either the
    >>> print preview, or the actual print output at all. It should be as if the
    >>> object element doesn't even exist. However, I *DO* want the object's
    >>> "graceful degradation" content, the h1 (present for those who do not
    >>> have Flash installed) to show up in the print preview AND the print
    >>> output.
    >>>

    >>
    >> I suggest that you make a second page that appears as you want it for
    >> printing out. Then just link to it from the main page for those who
    >> want to print. The print page would have your header instead of the
    >> flash display, and anything else that would make the printed page look
    >> better.

    >
    > Does there have to be a completely separate page? Bend CSS to your will
    > (assuming it's working in your users' browsers in the first place)?
    >
    > In the XHTML:
    > <head>
    > <link rel="Stylesheet" href="MyStyle.css" type="text/css" media="screen">
    > <link rel="Stylesheet" href="MyStylePrint.css" type="text/css"
    > media="print">
    >
    > <object blah blah...>
    > <h1 class="flashthingy">Our company is dynamic</h1>
    >
    > In MyStyle.css:
    > object#head {visibility:visible;}
    > h1.flashthingy {display:none;}
    >
    > In MyStylePrint.css:
    > object#head {visibility:hidden;}
    > h1.flashthingy {display:block;}
    >
    > Whether you use visibility or display to hide the Flash object depends
    > on its position and spacing relative to other elements. When I use CSS
    > to hide a nav menu when printing, I often use visibility:hidden so as to
    > preserve the layout. Sometimes, though, it's preferable to completely
    > /hide/ the nav menu (display:none;) to /not/ preserve the layout. You'll
    > have to study your design and see.
    >
    > Caveat: not sure this will work for you, so try it and test it well. I
    > have no clue regarding <h1> or other texts in Flash objects so cannot
    > help you (Neo) directly.
    >
    > HTH. GL.


    The problem with this method is with people who have flash disabled, or
    who have an alternative user-agent. Those without flash or with an
    older, incompatible version of flash, will not see any type of header at
    all, because there is no <h1> inside the <object>. However, if we were
    to put two on the page - one inside the object for those that cannot use
    the object element, and one outside for print purposes - those who
    cannot use the object element and go to print out the page will see two
    headers.

    I can see many situations where either no headers, or both headers would
    be seen. This would not be a good situation. Besides, I am trying to
    implement a semantically correct way of doing this; and that means that
    only one <h1> can and will exist on the page.

    In fact, the only thing that I think *might* work is sIFR
    (http://www.mikeindustries.com/sifr/), as it allows the <h1> to exist
    all by itself, and dynamically adds the flash if and only if the user
    has the right version of flash installed. Problem is, it seems you
    cannot specify pre-made flash files... it’s meant as a rich text tool
    that dynamically reads what is inside the tagged element, and renders it
    as fancily-formatted flash text (your own desired font, which the end
    user doesn’t necessarily have).

    Thanks, anyways.
    ...Geshel
    --
    *********************************************************************
    My return e-mail address is an automatically monitored spam honeypot.
    Do not send e-mail there unless you wish to be reported as a spammer.
    Please send all e-mail to my first name at my last name dot org, with
    a subject-line of “NEWSGROUP REPLY FOR NEO GESHEL†(all uppercase).
    *********************************************************************
     
    Neo Geshel, Mar 21, 2007
    #9
    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. Bernie
    Replies:
    0
    Views:
    586
    Bernie
    Sep 5, 2004
  2. hazz
    Replies:
    6
    Views:
    49,799
    SkyUCHC
    Jun 9, 2010
  3. Laura Creighton

    Favour

    Laura Creighton, Oct 12, 2003, in forum: Python
    Replies:
    0
    Views:
    472
    Laura Creighton
    Oct 12, 2003
  4. Need your favour

    , Jul 27, 2007, in forum: Java
    Replies:
    3
    Views:
    356
    Roedy Green
    Jul 30, 2007
  5. Laphan

    Big favour needed to test site combos

    Laphan, Aug 31, 2003, in forum: ASP General
    Replies:
    5
    Views:
    146
Loading...

Share This Page