Google-Gadgets-API

[Prev] Thread [Next]  |  [Prev] Date [Next]

[Google-Gadgets-API] Re: Syndication embedding has changed, breaks _IG_AdjustIFrameHeight skeeJay Wed Jun 24 06:00:51 2009

I think I just answered my own question: the two instances of the
gadget remain linked.  IF and only if both instances of the gadget
load with the "new" domain.

On Jun 24, 8:34 am, skeeJay <[EMAIL PROTECTED]> wrote:
> Smart work, String.  And your workaround works well except in one
> instance; because you're assigning an alias to a window object
> property by setting window._IG_AdjustIFrameHeight, if more than one
> instance of the gadget is embedded on a page, it causes the heights of
> all the instances of the gadget to become linked; if one is resized,
> they all resize.
>
> Would it be better in your workaround to reset, instead of this
> window.property, the var itself by changing it to:
>
> if (!!gadgets && !!gadgets.window && !!gadgets.window.adjustHeight)
>   _IG_AdjustIFrameHeight = gadgets.window.adjustHeight;
>
> ?
>
> E
>
> On Jun 24, 4:20 am, String <[EMAIL PROTECTED]> wrote:
>
>
>
> > On Jun 24, 12:10 am, skeeJay <[EMAIL PROTECTED]> wrote:
>
> > > The problem is that when the gadget uses the new embedding method, it
> > > breaks _IG_AdjustIFrameHeight.  Consistently, every single time, the
> > > gadget is incapable of resizing itself.
>
> > You're absolutely right. _IG_AdjustIFrameHeight is well and truly
> > broken in syndication. I've been able to reproduce this for my own
> > gadgets, and I'm posting my findings here in the hope of convincing
> > Google that we aren't all just imagining this.
>
> > First, here are my URLs.
> > The gadget I'm testing with:http://gad.getpla.net/feed/reader.xml
> > A syndicated page where you can find it:http://gad.getpla.net/feed/
> > Just to be clear, the issue is that its iframe should adjust in size
> > to nicely fit the retrieved feed content, and half the time it
> > doesn't. Refresh the page a few times if you need to, until the feed
> > content in the gadget is cut off.
>
> > As skeeJay said, it's definitely linked to the domain from which the
> > gadget iframe is served. Digging into the API's JS code, I find that
> > the new (broken) domain is actually defining  _IG_AdjustIFrameHeight
> > TWICE. First is this:
>
> > var _IG_AdjustIFrameHeight = gadgets.window.adjustHeight;
>
> > Looks fine, it's just being set up as an alias for the gadgets.*
> > equivalent. But then later in the iframe source is another definition,
> > which looks like this (de-obfuscated for clarity):
>
> > _IG_AdjustIFrameHeight = function(opt_height) {
> >   if(typeof opt_height != "undefined") {
> >     gadgets.window.adjustHeight(opt_height);
> >   }
>
> > };
>
> > Notice anything funny there? In the second definition (which replaces
> > the first), _IG_AdjustIFrameHeight expects to be passed the target
> > height - and if it's not, the underlying gadgets.window.adjustHeight
> > never gets called. Is it any surprise that our (parameter-less) calls
> > to _IG_AdjustIFrameHeight aren't working? What was Google thinking,
> > releasing code like this into production?
>
> > Fortunately, there is an easy workaround: simply redo the alias
> > yourself. Insert this code before your first call to
> > _IG_AdjustIFrameHeight:
>
> > if (!!gadgets && !!gadgets.window && !!gadgets.window.adjustHeight)
> >   window._IG_AdjustIFrameHeight = gadgets.window.adjustHeight;
>
> > This seems to work on both the old and new domains. I suggest adding
> > this to any dynamic-height gadgets in syndication until Google either
> > fixes the gadgets.* platform or rolls us back to Legacy.
>
> > FWIW, I'm not seeing this erroneous second definition on iGoogle,
> > either in the sandbox or the live page. IOW, this isn't the same
> > problem that's plaguing _IG_AdjustIFrameHeight on iGoogle. Maybe I'll
> > dig into that one next. :^)
>
> > String
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"iGoogle Developer Forum" 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/Google-Gadgets-API?hl=en
-~----------~----~----~----~------~----~------~--~---