<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Scott Robbin &#187; Javascript</title>
	<atom:link href="http://srobbin.com/blog/category/javascript/feed/" rel="self" type="application/rss+xml" />
	<link>http://srobbin.com/blog</link>
	<description>A variety of articles, projects and by web developer, Scott Robbin.</description>
	<lastBuildDate>Mon, 06 Sep 2010 16:37:45 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>jQuery Backstretch 1.1 Released</title>
		<link>http://srobbin.com/blog/jquery-backstretch-1-1-released/</link>
		<comments>http://srobbin.com/blog/jquery-backstretch-1-1-released/#comments</comments>
		<pubDate>Wed, 28 Jul 2010 17:28:28 +0000</pubDate>
		<dc:creator>Scott Robbin</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[backstretch]]></category>

		<guid isPermaLink="false">http://srobbin.com/blog/?p=813</guid>
		<description><![CDATA[A new version of jQuery Backstretch has been released. It contains a number of fixes and enhancements: Added ‘centeredX’ and &#8216;centeredY&#8217; options. Removed ‘hideUntilReady’ option. It looks pretty bad if you don’t hide the image until it’s fully loaded. Fixed IE img onload bug. Now supports iPhone/iPad orientation changes. Many thanks to Peter Baker for [...]]]></description>
			<content:encoded><![CDATA[<p>A new version of jQuery Backstretch has been released. It contains a number of fixes and enhancements:</p>
<ul>
<li>Added ‘centeredX’ and &#8216;centeredY&#8217; options.</li>
<li>Removed ‘hideUntilReady’ option. It looks pretty bad if you don’t hide the image until it’s fully loaded.</li>
<li>Fixed IE img onload bug.</li>
<li>Now supports iPhone/iPad orientation changes.</li>
</ul>
<p>Many thanks to <a href="http://ptrbkr.com/">Peter Baker</a> for providing the code to center the images.</p>
<p><a href="/jquery-plugins/jquery-backstretch/" class="install">Download Backstretch Now</a></p>
]]></content:encoded>
			<wfw:commentRss>http://srobbin.com/blog/jquery-backstretch-1-1-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Easy Full Screen Background Images with jQuery</title>
		<link>http://srobbin.com/blog/easy-full-screen-background-images-with-jquery/</link>
		<comments>http://srobbin.com/blog/easy-full-screen-background-images-with-jquery/#comments</comments>
		<pubDate>Wed, 20 Jan 2010 16:39:35 +0000</pubDate>
		<dc:creator>Scott Robbin</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://srobbin.com/blog/?p=527</guid>
		<description><![CDATA[&#8220;There are many like it, but this one is mine.&#8221; A recent Weightshift project, Central, brought about a few development challenges, one of which was background imagery. Naz had designed the page to include photography set behind the content. This raised questions: How would we deal with the additional weight of the images (~150–250K) without [...]]]></description>
			<content:encoded><![CDATA[<p>&#8220;There are many like it, but this one is mine.&#8221;</p>
<p>A recent <a href="http://weightshift.com">Weightshift</a> project, Central, brought about a few development challenges, one of which was background imagery. Naz had designed the page to include <a href="http://www.centralstory.com">photography set behind the content</a>. This raised questions:</p>
<ul>
<li>How would we deal with the additional weight of the images (~150–250K) without dragging down the page’s load time?</li>
<li>Everyone’s browser window will be a different size. How do you determine what is the best/largest size to make the image, so that it fills the entire window?</li>
<li>How do you account for images that are proportioned differently?</li>
</ul>
<p>I did some research and found a few good solutions, though each had its limitations.</p>
<p><a href="http://css-tricks.com/perfect-full-page-background-image/">CSS-based solutions</a> were straightforward, but didn&#8217;t address the requirement of triggering the download only after the page was ready. <a href="http://www.ajaxblender.com/bgstretcher-jquery-stretch-background-plugin.html">Javascript</a> <a href="http://growmedia.ca/blog/2009/10/14/resizable-full-browser-background-image-with-jquery-preserving-aspect-ratio/">solutions</a> addressed the page load requirement, but were often more complex than we needed and required the user to have prior knowledge of the image size (something that we couldn&#8217;t necessarily predict). The final solution was not novel, it was an amalgam of both solutions, implemented in Javascript.</p>
<p>Backstretch is a simple plugin recreated from the code used on Central, derived from the ideas presented in existing CSS and JS solutions. It is meant to be used by those who want a lightweight, minimalist implementation of dynamically-resized background images that can be executed in one line of Javascript, with nothing more than a link to an image.</p>
<p><a class="install" href="http://srobbin.com/jquery-plugins/jquery-backstretch/">Download Backstretch</a><br />
<script type="text/javascript" src="/js/jquery.backstretch.min.js"></script><br />
<script type="text/javascript">
  if( $("#content.single").length == 1)
      $.backstretch("http://farm3.static.flickr.com/2725/4290239913_59c55d6896_o.jpg");
</script></p>
]]></content:encoded>
			<wfw:commentRss>http://srobbin.com/blog/easy-full-screen-background-images-with-jquery/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>jQuery PageSlide v1.1 Released</title>
		<link>http://srobbin.com/blog/jquery-pageslide-v11-released/</link>
		<comments>http://srobbin.com/blog/jquery-pageslide-v11-released/#comments</comments>
		<pubDate>Fri, 19 Jun 2009 17:16:36 +0000</pubDate>
		<dc:creator>Scott Robbin</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://srobbin.com/blog/?p=280</guid>
		<description><![CDATA[A huge thank you to Derek Perez, who has taken over development of the jQuery PageSlide plug-in. He&#8217;s done a major overhaul and brought it up to version 1.1 with the following new features: Choose slide direction (left or right) Custom width slides Modal slides unobtrusive Mutiple slide definitions on the same page Fully supported [...]]]></description>
			<content:encoded><![CDATA[<p>A huge thank you to <a title="Derek Perez" href="http://derekperez.com/blog/">Derek Perez</a>, who has taken over development of the jQuery PageSlide plug-in. He&#8217;s done a major overhaul and brought it up to <a title="jQuery PageSlide v1.1" href="http://github.com/srobbin/jquery-pageslide/tree/release-1.1">version 1.1</a> with the following new features:</p>
<ul>
<li>Choose slide direction (left or right)</li>
<li>Custom width slides</li>
<li>Modal slides</li>
<li>unobtrusive</li>
<li>Mutiple slide definitions on the same page</li>
<li>Fully supported with IE7+, FireFox 2+, Safari 2+</li>
<li>Minified version included!</li>
</ul>
<p><a href="http://github.com/srobbin/jquery-pageslide/tree/release-1.1">Link</a></p>
]]></content:encoded>
			<wfw:commentRss>http://srobbin.com/blog/jquery-pageslide-v11-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TinyFinder: A Jetpack Widget</title>
		<link>http://srobbin.com/blog/tinyfinder-a-jetpack-widget/</link>
		<comments>http://srobbin.com/blog/tinyfinder-a-jetpack-widget/#comments</comments>
		<pubDate>Mon, 01 Jun 2009 18:20:47 +0000</pubDate>
		<dc:creator>Scott Robbin</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://srobbin.com/blog/?p=274</guid>
		<description><![CDATA[This weekend, I started to play around with Jetpack from Mozilla Labs. If you haven&#8217;t already heard of Jetpack, it&#8217;s a Labs experiment that looks at making the creation of web browser extensions easier. As someone who&#8217;s previously tried to make a Firefox extension, I can say wholeheartedly that this was a much, much, much [...]]]></description>
			<content:encoded><![CDATA[<p>This weekend, I started to play around with <a title="Mozilla Labs' Jetpack" href="https://jetpack.mozillalabs.com/">Jetpack from Mozilla Labs</a>. If you haven&#8217;t already heard of Jetpack, it&#8217;s a Labs experiment that looks at making the creation of web browser extensions easier. As someone who&#8217;s previously tried to make a Firefox extension, I can say wholeheartedly that this was a much, much, much more pleasant experience.</p>
<p>The widget that I created–<a title="TinyFinder for Mozilla Labs' Jetpack" href="http://srobbin.com/projects/tinyfinder/">TinyFinder</a>–looks for rev=canonical links in a webpage, and displays them in the statusbar of the browser window. Rev=canonical links are meta tags that are used when a website wants to suggest a preferred tiny url to use. For example, the Flickr page <a href="(http://www.flickr.com/photos/srobbin/3533142101/">(http://www.flickr.com/photos/srobbin/3533142101/</a>) can also be accessed by Flickr&#8217;s own tiny url (<a href="http://flic.kr/p/6odh48">http://flic.kr/p/6odh48</a>). Of course, you could always use one of many url shortening services, but Flickr&#8217;s custom URL suggests what you&#8217;ll see on the other side of the redirect: a photo/movie. Several services are starting to employ their own custom tiny urls:  Dopplr, Threadless, Songza, and many more.</p>
<p><img class="alignnone size-full wp-image-263" title="TinyFinder for Jetpack, Screenshot" src="http://srobbin.com/wp-content/uploads/2009/06/picture-1.png" alt="TinyFinder for Jetpack, Screenshot" width="412" height="105" /></p>
<p>If the web page you are looking at does not provide its own tiny, custom URL, you can always click on the statusbar widget; one will be created for you and automagically copied to your clipboard.</p>
<p><a href="http://srobbin.com/projects/tinyfinder/">Link</a></p>
]]></content:encoded>
			<wfw:commentRss>http://srobbin.com/blog/tinyfinder-a-jetpack-widget/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Textual Chocolate</title>
		<link>http://srobbin.com/blog/textual-chocolate/</link>
		<comments>http://srobbin.com/blog/textual-chocolate/#comments</comments>
		<pubDate>Fri, 13 Mar 2009 03:57:46 +0000</pubDate>
		<dc:creator>Scott Robbin</dc:creator>
				<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://halobrite.com/blog/?p=235</guid>
		<description><![CDATA[It started off innocent enough: I wanted to play around Javascript key events, looking at words as they were typed. It progressed from there into examining at each keystroke at a character level and manipulating the output. It quickly devolved into this...]]></description>
			<content:encoded><![CDATA[<p>It started off innocent enough: I wanted to play around Javascript key events, looking at words as they were typed. It progressed from there into examining at each keystroke at a character level and manipulating the output. It quickly devolved into this&#8230;</p>
<h2>RêþLÃÇÏñg εÅςΗ ¢hªRã¢τÊ® ωîτh Τhê hΤΜι ÈÑτíτý Èqúî√âLéÑΤ óƒ gΩβΒLψ-gõÕΚ.</h2>
<p>Sometimes we have a purpose to our actions, and sometimes we play around and have fun. This is the latter: fun without an ounce of purpose&#8230;</p>
<p><a title="Textual Chocolate" href="http://halobrite.com/fun/textual-chocolate">Textual Chocolate</a></p>
]]></content:encoded>
			<wfw:commentRss>http://srobbin.com/blog/textual-chocolate/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>jQuery pageSlide</title>
		<link>http://srobbin.com/blog/jquery-pageslide/</link>
		<comments>http://srobbin.com/blog/jquery-pageslide/#comments</comments>
		<pubDate>Wed, 07 Jan 2009 16:04:30 +0000</pubDate>
		<dc:creator>Scott Robbin</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[UI]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://halobrite.com/blog/?p=70</guid>
		<description><![CDATA[<p>As web developers, we spend precious time laying out our pages, using every UI concept in the book to conserve space, while trying to maintain a user's focus on the task at hand. There are many techniques to use — Lightbox, Carousel and Tabs to name a few — and today I hope to offer up another: jQuery pageSlide.</p>]]></description>
			<content:encoded><![CDATA[<p>Nowadays, it might be accurate to say that screen real estate is worth more than <em>actual</em> real estate.</p>

<p>As web developers, we spend precious time laying out our pages, using every UI concept in the book to conserve space, while trying to maintain a user's focus on the task at hand. There are many techniques to use &mdash; Lightbox, Carousel and Tabs to name a few &mdash; and today I hope to offer up another: jQuery pageSlide.</p>

<p>jQuery pageSlide was inspired by the UI work of Aza Raskin. In his recent posts regarding concepts for <a href="http://www.azarask.in/blog/post/firefox-mobile-concept-video/" title="Firefox Mobile">Firefox Mobile</a> and <a href="http://www.azarask.in/blog/post/can-ubiquity-be-used-only-with-the-mouse/" title="Mouse-based Ubiquity"> a mouse-based Ubiquity</a>, Aza introduced the idea of sliding (or &quot;throwing&quot;) content aside to reveal a secondary content pane.</p>

<p><img src="http://farm5.static.flickr.com/4005/4690865748_8b047d764f_o.png" style="border: 1px solid black" alt="jQuery pageSlide Screenshot" title="jQuery pageSlide Diagram" /></p>

<p>This plugin allows any developer to recreate a similar interaction on their own website using a few simple lines of Javascript. By attaching the method to an anchor tag, pageSlide wraps the original body content into a wrapper and creates an additional block for the secondary content load. The slide is animated whenever the click event is invoked.</p>


<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #339933;">&lt;</span>script type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;text/javascript&quot;</span><span style="color: #339933;">&gt;</span>
    $<span style="color: #009900;">&#40;</span>document<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">ready</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'a.pageslide'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">pageSlide</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span>
            width<span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;300px&quot;</span>
        <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #339933;">&lt;/</span>script<span style="color: #339933;">&gt;</span></pre></div></div>




<p>Similar to <a href="http://en.wikipedia.org/wiki/Lightbox_(JavaScript)" title="Lightbox">Lightbox</a>, pageSlide has two major advantages:</p>
<ol>
	<li>The primary window is reserved for content; secondary interactions do not require additional space on the page &mdash; the area they need is created and removed on demand.</li>
	<li>Because the user can see the original window, they have a greater likelihood of retaining focus, and can easily return to the previous task.</li>
</ol>
</p>

<h2>Can I See It In Action?</h2>
<p>Of course, you can! <a href="/demos/jquery-pageslide/secondary_page.htm" class="pageslide" title="pageSlide Demo">Click for a pageSlide demo.</a></p>

<h2>Where Do I Get It?</h2>
<p>I've setup a <a href="http://github.com/srobbin/jquery-pageslide/tree/master" title="GitHub: jquery-pageslide">GitHub project for jquery-pageslide</a>. Note: It's just a rough outline of how the plugin should function and in not production-ready yet. I've intentionally left it as a simple skeleton so that others may participate in the design and implementation process. Comments and suggestions, either here or on the project page, are welcome and appreciated.</p>

<link rel="stylesheet" type="text/css" href="/css/jquery.pageslide.css" />
<style type="text/css">
    #secondary {
        color: #FFF;
        padding: 15px 35px;
        }
    #secondary h2 {
       color:#7DBC3D;
       font-size:22px;
       margin-bottom:10px;
       }
</style>
<script type="text/javascript" src="/js/jquery.pageslide-0.2.js"></script>
<script type="text/javascript">
        var loadImg = new Image();
        loadImg.src = "/demos/jquery-pageslide/loader.gif";

        $(document).ready(function() {
            $('a.pageslide').pageSlide({
                width: "300px"
            });
        });
</script>]]></content:encoded>
			<wfw:commentRss>http://srobbin.com/blog/jquery-pageslide/feed/</wfw:commentRss>
		<slash:comments>105</slash:comments>
		</item>
		<item>
		<title>Using Ubiquity to Replace alert()</title>
		<link>http://srobbin.com/blog/using-ubiquity-to-replace-alert/</link>
		<comments>http://srobbin.com/blog/using-ubiquity-to-replace-alert/#comments</comments>
		<pubDate>Tue, 30 Dec 2008 18:22:10 +0000</pubDate>
		<dc:creator>Scott Robbin</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[UI]]></category>
		<category><![CDATA[Ubiquity]]></category>

		<guid isPermaLink="false">http://halobrite.com/blog/?p=32</guid>
		<description><![CDATA[Bad habits are hard to break, especially when they're your own, but what about other people's habits....impossible? Difficult, perhaps, but not insurmountable. By using Ubiquity's preLoad_ authoring tool, you can override Javascript's native functions, such as alert(), and replace them with useful interactions like Transparent Messages.]]></description>
			<content:encoded><![CDATA[<p>Bad habits are hard to break, especially when they&#8217;re your own, but what about other people&#8217;s habits&#8230;.impossible? Difficult, perhaps, but not insurmountable.</p>
<p>When we first encounter Javascript programming, the quintessential function that enamors us all is <a href="http://www.w3schools.com/JS/js_popup.asp" title="Javascript pop-up boxes">alert()</a>. Plunk that baby down into a page and, bam (or more accurately&#8230;thwunk!), a magical dialog box appears, grabbing the viewer&#8217;s attention and providing useful/useless information:</p>
<input type="button" onclick="alert('Aw, geez, you clicked me! Thanks.')" value="Click me, click me, click me" style="margin:15px 0 25px 0" id="demo" />
<p>But is this the best way to convey important information? Probably not. For one, the alert box is <a href="http://en.wikipedia.org/wiki/Modal_window" title="Wikipedia: Modal Windows">modal</a>; a user cannot continue with their task until they&#8217;ve clicked OK &mdash; their train of thought is broken.</p>
<p>One solution to this problem is to use transparent messaging. Rather than doing a disservice by re-explaining, I&#8217;ll refer you to read <a href="http://humanized.com/weblog/2006/09/11/monolog_boxes_and_transparent_messages/" title="Humanized: Monolog Boxes and Transparent Messages">Aza Raskin&#8217;s article on Monolog Boxes and Transparent Messages</a>. Or, if you&#8217;d like to see them in the wild, check out <a href="http://songza.com" title="Songza: The Music Search Engine and Internet Jukebox">Songza</a>: we utilize transparent messages to convey the state of media player (play a song, then press the space bar to Pause.)</p>
<p><a href="http://www.flickr.com/photos/srobbin/3151602178/"><img alt="" src="http://farm4.static.flickr.com/3146/3151602178_d8f20bf468.jpg" title="Transparent Message on Songza.com" class="alignnone" width="500" height="246" /></a></p>
<p>Now, that&#8217;s all well and good, you might say, but what about sites that I don&#8217;t have programmatic control over? As a user, I&#8217;m at the mercy of whatever features the site programmer chooses to implement. Not true. Enter <a href="http://labs.mozilla.com/projects/ubiquity/" title="Mozilla Labs: Ubiquity">Ubiquity</a>.</a></p>
<h2>Ubiquity and pageLoad_</h2>
<p>One of the goals of Ubiquity is to extend functionality across websites, regardless of whether or not the original programmer had coded that type of interaction (i.e. language translation, map insertion, word definition, etc). As such, <a href="http://labs.mozlla.com" title="Mozilla Labs">Mozilla Labs</a> has given programmers a bevy of <a href="https://wiki.mozilla.org/Labs/Ubiquity/Ubiquity_0.1_Author_Tutorial" title="Ubiquity: Author Tutorial">authoring tools</a>, including the <strong>pageLoad_</strong> prefix. If, in your command file, you create a function that starts with pageLoad_, Ubiquity will execute this code whenever a new page is loaded into the browser window. It is this functionality that allows users to override native Javascript functions, such as alert().</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"> <span style="color: #003366; font-weight: bold;">function</span> pageLoad_overrideNativeFunction<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
     CmdUtils.<span style="color: #660066;">getWindowInsecure</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">nativeFunction</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>args<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
          <span style="color: #006600; font-style: italic;">// Your code here</span>
     <span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span></pre></div></div>

<p>By using this pattern, the native function is auto-magically replaced with your customized code each time a new page is loaded. In my case, I&#8217;ve chosen to override alert() with a call to create and show a Transparent Message <em>(Note: I&#8217;ve used a Singleton with lazy instantiation to converse resources on pages that won&#8217;t call the command)</em>:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">function</span> pageLoad_overrideAlert<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
     CmdUtils.<span style="color: #660066;">getWindowInsecure</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #000066;">alert</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>str<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
          TransparentMessage.<span style="color: #660066;">getInstance</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">show</span><span style="color: #009900;">&#40;</span>str<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
     <span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span></pre></div></div>

<p>To see a working example, simply <a href="https://ubiquity.mozilla.com/xpi/ubiquity-latest.xpi" title="Install Ubiquity">install the Ubiquity extension for Firefox</a> and <a href="http://halobrite.com/ubiquity/" title="Halobrite: Ubiquity Commands">subscribe to the transparent-message command</a>. From there, you can create a test message by issuing the &#8220;transparent-message&#8221; command, or see how it overrides alert() by revisiting this page and clicking the <a href="#demo">demo button located at the top of this article</a>.</p>
<p><em>Note: Many thanks to <a href="http://binarybonsai.com/" title="Binary Bonsai">Micheal Heilemann</a> for authoring the <a href="http://code.google.com/p/humanmsg/" title="jQuery: Humanized Messages plugin">jQuery Humanized Messages plugin</a>. It&#8217;s what we use on Songza, and was used as a reference to create the transparent-message command.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://srobbin.com/blog/using-ubiquity-to-replace-alert/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk
Page Caching using disk (enhanced) (user agent is rejected)
Database Caching 4/12 queries in 0.004 seconds using disk

Served from: srobbin.com @ 2010-09-10 15:53:45 -->