@Mike: Update - it's all up and running! You can see it here: http://tinyurl.com/5n8mco
Thanks so much for your help (OK... for DOING it!). I really appreciate it! - John On Sep 8, 12:52 pm, bcbounders <[EMAIL PROTECTED]> wrote: > Mike, > > WOW! Thanks so much! This is TOTALLY the kind of thing I was looking > for. Thanks for taking the time to do such a thorough mock-up! You > ROCK, dude! > > Thanks... can't wait to go try this out! > > - John > > On Sep 8, 10:18 am, "Michael Geary" <[EMAIL PROTECTED]> wrote: > > > Brad has a great idea there. > > > To really protect your page, you need to take one more step. (I assume you > > have other content on the page, right?) > > > If ibegin.com is down in a way that results in a slow timeout instead of an > > immediate "unavailable" response, it will delay loading the rest of your > > page until the browser times out. > > > To fix this, move the weather gadget out of your page and into an IFRAME. > > That way, no matter what goes wrong at ibegin.com, it will never affect the > > rest of your page. > > > Inside the IFRAME, you can use code similar to Brad's. > > > Here's a working test page: > > > <http://mg.to/test/ibegin/ibegin.html>http://mg.to/test/ibegin/ibegin.html > > > The iframe for this page is in: > > > <http://mg.to/test/ibegin/weatherframe.html>http://mg.to/test/ibegin/weatherframe.html > > > And here's a "broken" test page. It's the same code with a deliberate error > > in the ibegin URL: > > > <http://mg.to/test/ibegin/wunder.html>http://mg.to/test/ibegin/wunder.html > > > That deliberate error is actually in the iframe code, so it uses a different > > copy of the iframe just for testing: > > > <http://mg.to/test/ibegin/weatherframe1.html>http://mg.to/test/ibegin/weatherframe1.html > > > You'll notice it loads a Weather Underground gadget instead of just a static > > image. That seems more useful than a static image, and the chances of both > > weather services being down seems pretty low. (And in that case the rest of > > your page would still load fine because of the iframe.) > > > For reference, here's the <iframe> tag in ibegin.html: > > > <iframe frameborder="0" style="width:220px; height:320px; > > overflow:hidden;" src="weatherframe.html"> > > </iframe> > > > And here's the complete HTML for the iframe (weatherframe.html): > > > <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> > > <html lang="en"> > > <head> > > <title></title> > > </head> > > <body scroll="no" style="margin:0; padding:0;"> > > > <script type="text/javascript" > > src="http://weather.ibegin.com/js/us/ak/ninilchik/0/0/1/1/0/custom.js > > <http://weather.ibegin.com/js/us/ak/ninilchik/0/0/1/1/0/custom.js&back... > > _color=transparent&color=093384&width=200&padding=0&border_width=0&border_c > > o > > lor=transparent&font_size=18&font_family=inherit&showicons=1> > > &background_color=transparent&color=093384&width=200&padding=0&border_width > > = > > 0&border_color=transparent&font_size=18&font_family=inherit&showicons=1"> > > </script> > > > <script type="text/javascript"> > > if( ! document.getElementsByTagName('div').length ) > > document.write( > > '<div style="text-align:center;">', > > '<a > > href="http://www.wunderground.com/US/AK/Ninilchik.html?bannertypeclick=infob > > ox" > > <http://www.wunderground.com/US/AK/Ninilchik.html?bannertypeclick=infobox>>', > > > '<img > > src="http://banners.wunderground.com/weathersticker/infobox/language/www/US/ > > AK/Ninilchik.gif" border=0 alt="Click for Ninilchik, Alaska Forecast" > > height=108 width=144>', > > '</a>', > > '</div>' > > ); > > </script> > > > </body> > > </html> > > > As you can see, the code doesn't use jQuery, and it doesn't use a 2 second > > timeout either. There's no need for any of that, and you wouldn't want the > > overhead of loading jQuery in this little iframe anyway. > > > Script tags are executed in the order in which they appear in the source. > > When the second script tag is run, the first one (loaded from ibegin.com) > > has already completed execution and created its DIV elements - or failed to > > execute, whichever the case may be. > > > So the second script tag can immediately test for the <div> that the first > > one creates, and if it's not there it does a document.write to add the > > Weather Undergound gadget instead. > > > -Mike > > > > From: bcbounders > > > > Brad, > > > > Interesting approach... I like it! Now I'll see if I can get > > > this to work on the site... like replacing the missing widget > > > with a static image or something... so the page doesn't have > > > a gaping hole where the weather's supposed to be (which is > > > what was happening when iBegin was down and the widget > > > wouldn't load, on-and-off all day a few days ago). > > > > Thanks a lot!!! > > > > - John > > > > On Sep 7, 6:22 pm, Brad <[EMAIL PROTECTED]> wrote: > > > > Here is a different approach. Include the javascript source for the > > > > weather.ibegin.com in the body of your page. On load run a delayed > > > > function to see if it has written its forecast to your page. I ran > > > > this on a test page and it worked. I could never get the > > > ibegin source > > > > to fail, therefore I had to change the script source to > > > something else > > > > likehttp://foo.weather.ibegin.com/... to simulate failure. > > > BTW, I was > > > > playing with the widget, so my example gets a different > > > forecast than > > > > yours. > > > > > <script> > > > > > var ibeginHTML; > > > > function ibeginLoaded() { > > > > ibeginHTML = $("#ibegin div").html(); > > > > if (ibeginHTML == null) { > > > > alert('Widget not loaded'); > > > > // You'd do something useful here > > > like insert > > > > your missing widget image > > > > } > > > > } > > > > > function ibeginTest() { > > > > // Give the widget a few seconds to load > > > > setTimeout('ibeginLoaded();',2000); > > > > } > > > > > $().ready(function(){ > > > > ibeginTest(); > > > > }); > > > > > </script> > > > > </head> > > > > <body> > > > > ... other content ... > > > > <div id="ibegin"> > > > > <script type="text/javascript" > > > src=" <http://foo.weather.ibegin.com/js/> > > >http://foo.weather.ibegin.com/js/> > us/nm/santa+fe/1/1/1/1/1/ > > > > custom.js&background_color=ffffff&color=000000&width=175&padding=10&bo > > > > rder_ > > > > width=1&border_color=000000&font_size=11&font_family=Tahoma&showicons= > > > > 1"></ > > > > script><noscript><a href=" <http://weather.ibegin.com/> > > >http://weather.ibegin.com/">Weather > > > > > Information by iBegin</a></noscript> > > > > </div> > > > > ... more content ... > > > > </body> > > > > </html> > > > > > On Sep 7, 3:55 pm, bcbounders <[EMAIL PROTECTED]> wrote: > > > > > > OK... so here's what I've got so far. I'm trying to work out the > > > > > jQuery so that if the iBegin weather widget is > > > successfully loaded, > > > > > then the <div id="weather"> is shown... otherwise, it's hidden. > > > > > > <script type="text/javascript"> > > > > > jQuery.ready(function(){ > > > > > jQuery("#weather").replaceWith({ > > > > > jQuery.ajax({ > > > > > type: "GET", > > > > > dataType: "script", > > > > > url: > > > > > " <http://weather.ibegin.com/js/us/ak/ninilchik/0/0/1/1/0/> > > >http://weather.ibegin.com/js/us/ak/ninilchik/0/0/1/1/0/ > > > > custom.js&background_color=transparent&color=093384&width=200&paddin > > > > > g=0&bor > > > > der_width=0&border_color=transparent&font_size=18&font_family=inheri > > > > > t&showi cons=1", > > > > > success: function(){ > > > > > > jQuery("#weather").show() > > > > > }, > > > > > error: function(){ > > > > > > jQuery("#weather").hide() > > > > > } > > > > > }); > > > > > }); > > > > > }); > > > > > </script> > > > > > > But... what I've got isn't working. And, being new to > > > jQuery (and > > > > > Javascript), I'm not sure why it's not working... or even > > > if this is > > > > > the best route to try and achieve what I want. > > > > > > Can someone take a look and provide some feedback? I'd really > > > > > appreciate it! > > > > > > Thanks a lot! > > > > > > - John > > > > > > On Sep 6, 10:49 am, bcbounders <[EMAIL PROTECTED]> wrote: > > > > > > > Rene, > > > > > > > Thanks so much for posting. > > > > > > > I got the site up, using the iBegin weather widget on > > > it's own. > > > > > > If it helps, here's a link: <http://tinyurl.com/5n8mco> > > >http://tinyurl.com/5n8mco > > > > > > > I'll take a stab at doing what you suggest... wish me > > > luck! :D But... > > > > > > expect to hear more questions from me soon. > > > > > > > - John