No problem, we were all newbies at some point. :)

On Tue, Jan 26, 2010 at 4:47 PM, Jean <[email protected]> wrote:

> Thanks, I understand now.  Your example makes the compression process
> very clear.
>
> I appreciate that you're a patient teacher to a newbie-- on some
> message forums, you get very mean replies if you ask questions that
> show you're ignorant of how things work.
>
> Jean
>
> On Jan 26, 6:30 pm, Philip Hutchison <[email protected]> wrote:
> > It shows up as "n" because the SWFObject library is compressed
> ("minified").
> > It's an automated process that  gives all variables the shortest names
> > possible. Here's an (admittedly simplistic and silly) example
> >
> > ----------------------------------
> > function mergeStrings(first, second){
> >    return first + second;
> >
> > }
> >
> > var firstvariable = "hi";
> > var secondvariable = "world";
> > var thirdvariable = mergeStrings(firstvariable, secondvariable);
> > ----------------------------------
> >
> > will be compressed to
> >
> > ----------------------------------
> > function f(){return a+b};var a="hi",b="world",c=f(a,b)
> > ----------------------------------
> >
> > As you can see, it's a substantial savings on file size but with the
> > trade-off of illegibility. It isn't meant to be human-readable.
> >
> > If you're trying to debug what's going on in your site, you could use the
> *
> > uncompressed* version of SWFObject while you troubleshoot. It's (a bit)
> > easier to read and has the same functionality.  :)
> >
> > http://ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject_src.js
> >
> > - philip
> >
> > On Tue, Jan 26, 2010 at 3:37 PM, Jean <[email protected]> wrote:
> > > Fair enough.  You have good arguments about not adding custom error
> > > handling.  How about giving the variable a more descriptive name than
> > > "n"?  If the variable were named "element", then the error message
> > > would say, "element is null", which would be an improvement.
> >
> > > Thanks for pointing out I'm using a seriously outdated version.  I'm
> > > looking forward to the upgrade!
> >
> > > Jean
> >
> > > On Jan 21, 1:43 pm, Philip Hutchison <[email protected]> wrote:
> > > > Hi Jean
> >
> > > > Thanks for the input.
> >
> > > > First, let me point out that you're using a really outdated version
> of
> > > > SWFObject.  The current release is 2.2, which uses a completely
> > > re-written
> > > > codebase than 1.5.
> >
> > > > Regardless, both editions do not check for the existence of the
> targeted
> > > DOM
> > > > element.
> >
> > > > Would it be useful to add error-checking? Probably. I do this all the
> > > time
> > > > in my own scripts. However, the current practice for every major
> > > JavaScript
> > > > library/framework (jQuery, MooTools, Dojo, etc.) is to assume that
> > > checking
> > > > for the existence of the DOM element is the *page developer*'s
> > > > responsibility.  If you don't know if your element is going to exist
> (and
> > > I
> > > > wonder why you wouldn't know), you can write your own check:
> >
> > > > var myElement = document.getElementById("flashcontent");
> > > > if(myElement){
> > > >    swfobject.embedSWF("myContent.swf", "flashcontent", "300", "120",
> > > > "9.0.0");
> >
> > > > }
> >
> > > > Two thoughts:
> >
> > > > *Custom error messages
> > > > *You're right when you say a custom error message could potentially
> help
> > > a
> > > > developer debug their code. However, there are many issues that would
> > > arise
> > > > from trying to introduce custom error code, including the size of our
> > > > codebase (which needs to be as small as possible), and the method of
> > > > delivering the message (not everyone has access to console.log via
> > > Firebug
> > > > or Safari).
> >
> > > > *Silent failure*
> > > > Another possibility is silent failure.  The code could be edited to
> > > simply
> > > > exit and not do anything if the DOM element is not found.  This could
> > > > potentially make debugging even more difficult (why isn't my SWF
> showing
> > > up?
> > > > what's going on?) and creates a more lax coding environment. It's
> better
> > > to
> > > > allow the error to go through so the developer knows there's
> something
> > > > wrong.
> >
> > > > As for the cryptic error messages you currently see, they're up to
> the
> > > > browser. Different browsers show different errors. But the "n is
> > > undefined"
> > > > or "n is null" type errors are very well documented in this Google
> Group
> > > > support list.
> >
> > > > - philip
> >
> > > > On Thu, Jan 21, 2010 at 8:06 AM, Jean <[email protected]> wrote:
> > > > > Hi, I recently discovered that if the element I pass in for the
> > > > > SWFObject to be written into is null, the error I get back is "n is
> > > > > null", which had me befuddled for a little while.  I figured out
> what
> > > > > was wrong because Firebug showed me the relevant lines of code, but
> it
> > > > > seems that the error message could be changed to be something more
> > > > > descriptive, like "element not found: div_flashGoesHere_typo".
> >
> > > > > Example of my code:
> > > > >  var so = new SWFObject("usindexesview.swf", "usindexesview",
> "1000",
> > > > > "450", "9", "#eeeeee");
> > > > >  so.write('div_flashGoesHere_typo');
> >
> > > > > My page does have a div element called 'div_flashGoesHere' but not
> one
> > > > > called 'div_flashGoesHere_typo'.  The error comes on these lines in
> > > > > swfobject.js:
> >
> > > > > 125      var n = (typeof elementId == 'string') ?
> > > > > document.getElementById(elementId) : elementId;
> > > > > 126      n.innerHTML = this.getSWFHTML();
> >
> > > > > So the error I get is "n is null", which happens on line 126.
> >
> > > > > At the very least, it would help if the variable were renamed
> > > > > 'element' or something more descriptive than 'n', but I leave the
> > > > > implementation details up to you.  :-)
> >
> > > > > Thanks for making a great little script!  I'm just hoping I can
> help
> > > > > make it a bit better.
> >
> > > > > Jean
> >
> > > > > --
> > > > > You received this message because you are subscribed to the Google
> > > Groups
> > > > > "SWFObject" group.
> > > > > To post to this group, send email to [email protected].
> > > > > To unsubscribe from this group, send email to
> > > > > [email protected]<swfobject%[email protected]>
> <swfobject%[email protected]<swfobject%[email protected]>
> >
> > > <swfobject%[email protected]<swfobject%[email protected]>
> <swfobject%[email protected]<swfobject%[email protected]>
> >
> >
> > > > > .
> > > > > For more options, visit this group at
> > > > >http://groups.google.com/group/swfobject?hl=en.
> >
> > > --
> > > You received this message because you are subscribed to the Google
> Groups
> > > "SWFObject" group.
> > > To post to this group, send email to [email protected].
> > > To unsubscribe from this group, send email to
> > > [email protected]<swfobject%[email protected]>
> <swfobject%[email protected]<swfobject%[email protected]>
> >
> > > .
> > > For more options, visit this group at
> > >http://groups.google.com/group/swfobject?hl=en.
>
> --
> You received this message because you are subscribed to the Google Groups
> "SWFObject" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected]<swfobject%[email protected]>
> .
> For more options, visit this group at
> http://groups.google.com/group/swfobject?hl=en.
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"SWFObject" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/swfobject?hl=en.

Reply via email to