[Javascript] flash on mac and javascript [again]
Schalk
schalk at volume4.com
Wed Apr 12 16:13:35 CDT 2006
Thanks a lot Nick!
Nick Fitzsimons wrote:
> Schalk wrote:
>> Please have a look at the following page: www.tele-court.com. If you
>> view this on a PC you will see that it has a Flash header however,
>> when viewed on Mac using Safari the Flash header does not show. I use
>> the following JavaScript to load the Flash header:
>
> It doesn't work on Opera either (7.5/Mac, 8.54/Win), nor on IE/Mac (5.2).
>
> The first problem is with the lines:
>
> > window.onload = header_wsound_object;
> > window.onload = header_wsound;
> >
>
> I'm not sure what you're trying to do here, but it looks like you want
> both functions to execute onload. What is actually happening is that
> you set the onload handler to a reference to the function
> "header_wsound_object", but then immediately replace that with a
> reference to the function "header_wsound". Thus, once the page has
> fully loaded, "header_wsound" is executed (by all browsers), and
> "header_wsound_object" is never called at all.
>
> "header_wsound" attempts to insert an <embed> element to hold the
> Flash object. <embed> has never been part of any standard - it was
> introduced with Netscape 3 (or 2 even?) back in 1996, and has only
> ever been supported for legacy reasons by Netscape <= 4,
> Mozilla/Firefox, and IE/Windows (note that IE/Win and IE/Mac are two
> completely differet browsers).
>
> Virtually every modern browser understands <object> so, unless users
> of Netscape 4 and older are important to you, you should look for a
> technique which allows you to use standards-based markup. You could
> just get rid of "header_wsound" and its assignation to the onload
> handler and then all browsers would use the <object> version; however
> the problem you then have is that IE/Win implements <object>
> incorrectly - or, to avoid religious wars, differently from other
> browsers.
>
> You can find more information about getting <object> working
> cross-browser in Drew McLellan's excellent A List Apart article "Flash
> Satay":
> <http://www.alistapart.com/articles/flashsatay/>
>
> An example of object-only markup that I've used with success for a
> couple of years is:
>
> <object height="234"
> width="468"
> type="application/x-shockwave-flash"
> id="flashPlayer"
> data="yourFlash.swf">
> <param name="movie" value="yourFlash.swf">
> <param value="high" name="quality">
> <param value="opaque" name="wmode">
> <param value="firstParam=blah&secondParam=bleh" name="FlashVars">
> <!-- optional fallback markup -->
> <div id="fallback">
> <p>
> This markup should be displayed when the
> Flash Player is missing.
> </p>
> <p>
> You can replace it with a suitable image, or any HTML you like
> and it only gets displayed if the user hasn't installed Flash.
> </p>
> <p>
> Some browsers have trouble with this however...
> test as necessary.
> </p>
> </div>
> <!-- end of fallback markup -->
> </object>
>
> You already have the basic code for creating and inserting the
> <object> element, so try modifying it to generate the above structure
> (no need to include the comments, and the fallback code is optional)
> and see what happens :-)
>
> BTW, if you did execute both functions onload, browsers like IE/Win
> and Firefox would end up understanding both the <object> and the
> <embed> and would show the Flash twice.
>
> Hope this helps,
>
> Nick.
--
Kind Regards
Schalk Neethling
Web Developer.Designer.Programmer.President
Volume4.Business.Solution.Developers
More information about the Javascript
mailing list