<?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/"
	>

<channel>
	<title>Adam.Kahtava.com / AdamDotCom &#187; Firebug</title>
	<atom:link href="http://adam.kahtava.com/journal/category/firebug/feed/" rel="self" type="application/rss+xml" />
	<link>http://adam.kahtava.com/journal</link>
	<description>A software development blog</description>
	<pubDate>Thu, 15 Jul 2010 17:00:41 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Inter / Cross Browser Window Communication Using JavaScript</title>
		<link>http://adam.kahtava.com/journal/2008/03/11/inter-cross-browser-window-communication-using-javascript/</link>
		<comments>http://adam.kahtava.com/journal/2008/03/11/inter-cross-browser-window-communication-using-javascript/#comments</comments>
		<pubDate>Tue, 11 Mar 2008 15:45:20 +0000</pubDate>
		<dc:creator>Adam Kahtava</dc:creator>
		
		<category><![CDATA[Firebug]]></category>

		<category><![CDATA[JavaScript]]></category>

		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://adam.kahtava.com/journal/PermaLink,guid,a83e7e46-a822-4f70-9c3a-a7ad377c3670.aspx</guid>
		<description><![CDATA[A quick search on the internet for &#8220;Inter Browser Window Communication Using JavaScript&#8221; reveals many outdated search results recommending questionable techniques. In the past I&#8217;ve fallen prey to many of these ill-advised suggestions. So&#8230; I thought, I&#8217;d start a small series on JavaScript techniques that I&#8217;ve found useful.
This post covers Inter / Cross Browser Window [...]]]></description>
			<content:encoded><![CDATA[<p>A quick search on the internet for <em>&#8220;Inter Browser Window Communication Using JavaScript&#8221;</em> reveals many outdated search results recommending questionable techniques. In the past I&#8217;ve fallen prey to many of these ill-advised suggestions. So&#8230; I thought, I&#8217;d start a small series on JavaScript techniques that I&#8217;ve found useful.</p>
<p><strong>This post covers Inter / Cross Browser Window Communications using JavaScript.</strong></p>
<p>A common scenario in web applications is: <strong>to have Page A open Page B , then have Page A communicate with Page B or vise versa.</strong></p>
<p>One of the techniques floating around the internet suggests that you use Cookies and a JavaScript setTimeout function that listens for the presence of a cookie. So essentially Page A sets a cookie and Page B listens for this cookie and acts on it.</p>
<p>A alternate solution might be to use the JavaScript Browser <a href="http://developer.mozilla.org/en/docs/DOM:window.open">window.open</a> and <a href="http://developer.mozilla.org/en/docs/DOM:window.opener">window.opener</a> methods. Using these two methods we can achieve inter / cross browser window communication as long as the <a href="http://www.mozilla.org/projects/security/components/same-origin.html">Same Origin Policy</a> is withheld - a similar approach can be taken for frame and iframe communication.<br />
<strong><br />
An example:</strong></p>
<pre><span style="color: Black; background-color: transparent; font-family: Courier New; font-size: 11px;"><span style="color: Green; background-color: transparent; font-family: Courier New; font-size: 11px;">// myNewWindow stores the reference to the newly </span></span><span style="color: Black; background-color: transparent; font-family: Courier New; font-size: 11px;"><span style="color: Green; background-color: transparent; font-family: Courier New; font-size: 11px;">
//Â Â  </span></span><span style="color: Black; background-color: transparent; font-family: Courier New; font-size: 11px;"><span style="color: Green; background-color: transparent; font-family: Courier New; font-size: 11px;">created window, </span></span><span style="color: Black; background-color: transparent; font-family: Courier New; font-size: 11px;"><span style="color: Green; background-color: transparent; font-family: Courier New; font-size: 11px;">this provides a handle for defining </span></span><span style="color: Black; background-color: transparent; font-family: Courier New; font-size: 11px;"><span style="color: Green; background-color: transparent; font-family: Courier New; font-size: 11px;">
//Â Â  and calling methods in the New Window </span><span style="color: Blue; background-color: transparent; font-family: Courier New; font-size: 11px;">
var</span> myNewWindow <span style="color: Red; background-color: transparent; font-family: Courier New; font-size: 11px;">=</span> <span style="font-size: x-small;"><strong>window.open</strong></span>('about:blank');
<span style="color: Green; background-color: transparent; font-family: Courier New; font-size: 11px;">
// Let us call the alert method in our New Window </span><span style="color: Green; background-color: transparent; font-family: Courier New; font-size: 11px;">
//Â Â  from this window (the Original Window) </span>
myNewWindow.alert('Hello From Original Window');
<span style="color: Green; background-color: transparent; font-family: Courier New; font-size: 11px;">
// Let us call an alert method in our Original Window </span><span style="color: Green; background-color: transparent; font-family: Courier New; font-size: 11px;">
//Â Â  from our New Window. So.. Lets use a timer </span>
myNewWindow.setTimeout(
 '<span style="font-size: x-small;"><strong>window.opener</strong></span>.alert(\'Hello From The New Window\')', 100);</span></pre>
<p>Click <a href="javascript: (function(){ var myNewWindow = window.open('about:blank'); myNewWindow.alert('Hello From Original Window'); myNewWindow.setTimeout('window.opener.alert(\'Hello From The New Window\');', 1000); })();">here</a> to run this code live in your browser window using a Bookmarklet, or copy the above code into your Firebug <a href="http://www.getfirebug.com/cl.html">Command Line Console</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://adam.kahtava.com/journal/2008/03/11/inter-cross-browser-window-communication-using-javascript/feed/</wfw:commentRss>
		</item>
		<item>
		<title>My first Greasemonkey Script: Goodbye ASP.NET Forum Ads</title>
		<link>http://adam.kahtava.com/journal/2007/11/21/my-first-greasemonkey-script-goodbye-aspnet-forum-ads/</link>
		<comments>http://adam.kahtava.com/journal/2007/11/21/my-first-greasemonkey-script-goodbye-aspnet-forum-ads/#comments</comments>
		<pubDate>Thu, 22 Nov 2007 03:12:58 +0000</pubDate>
		<dc:creator>Adam Kahtava</dc:creator>
		
		<category><![CDATA[CSS]]></category>

		<category><![CDATA[DOM]]></category>

		<category><![CDATA[Firebug]]></category>

		<category><![CDATA[Firefox]]></category>

		<category><![CDATA[JavaScript]]></category>

		<category><![CDATA[greasemonkey]]></category>

		<guid isPermaLink="false">http://adam.kahtava.com/journal/PermaLink,guid,e81cbb41-be44-4c48-ac58-1b88c42bb95a.aspx</guid>
		<description><![CDATA[Greasemonkey is an add-on for Firefox. Through JavaScript it allows anyone the ability to dynamically modify a page as, or after it&#8217;s being rendered in the browser. This lets anyone trim the DOM, remove ads, and modify page in anyway they see fit (it also opens up some serious privacy concerns with XSS). Anyhow, I [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://en.wikipedia.org/wiki/Greasemonkey">Greasemonkey</a> is an add-on for Firefox. Through JavaScript it allows anyone the ability to dynamically modify a page as, or after it&#8217;s being rendered in the browser. This lets anyone trim the DOM, remove ads, and modify page in anyway they see fit (it also opens up some serious privacy concerns with <a href="http://en.wikipedia.org/wiki/Cross_site_scripting">XSS</a>). Anyhow, I spend a fair time on the <a href="http://forums.asp.net/139.aspx">ASP.NET forums</a>, but the advertisements have always made for a somewhat negative, but tolerable user experience.</p>
<p>Today I finally broke down and wrote my own Greasemonkey script - now formally known as <em>&#8220;The ASP.NET Forums Beautifier&#8221;</em> for lack of a better name.</p>
<p><strong>The Script Before and After: </strong></p>
<p><strong>Before - </strong>usually the ASP.NET Forums look like this:<br />
<img src="http://adam.kahtava.com/etcetera/greasemonkey/gm.forums.asp.net.before.small.png" alt="" /></p>
<p><strong>After</strong> - with my script running in Greasemonkey we get this:<br />
<img src="http://adam.kahtava.com/etcetera/greasemonkey/gm.forums.asp.net.after.small.png" alt="" /></p>
<p><em>note: the greasemonkey icon, and complete lack of fluff / advertisements on the second screenshot.</em></p>
<p>Creating this script was simpler than I expected. It was a matter of skimming through an article on <a href="http://www.cyberciti.biz/tips/how-to-write-greasemonkey-scripts.html">How to write Greasemonkey scripts</a>, using <a href="http://www.getfirebug.com/logging.html">Firebug&#8217;s JavaScript Console</a> and <a href="http://developer.mozilla.org/en/docs/JavaScript_Console">Firefox&#8217;s Error Console</a> to test my code (after all, Firefox is the new IDE, <a href="http://www.codinghorror.com/blog/archives/000780.html">Firefox as an IDE</a>), and an hour later, Viola! No more ads.</p>
<p>The <a href="http://yuiblog.com/">YUI blog</a> and <a href="http://adam.kahtava.com/journal/2007/09/16/javascript-is-awesome-i-want-to-work-with-douglas-crockford/">Douglas Crockford</a> in particular, have inspired my JavaScript renaissance. JavaScript is really interesting, it&#8217;s a functional, loosely typed programming language that uses <a href="http://en.wikipedia.org/wiki/Prototype-based_programming">prototype-base inheritance</a>. Developing in JavaScript is a real treat from some of the more statically typed languages.</p>
<p>Download <a href="https://addons.mozilla.org/en-US/firefox/addon/748">Greasemonkey</a> and <em><a href="http://userscripts.org/scripts/show/25869">&#8220;The ASP.NET Forums Beautifier&#8221;</a></em> for yourself. :)</p>
]]></content:encoded>
			<wfw:commentRss>http://adam.kahtava.com/journal/2007/11/21/my-first-greasemonkey-script-goodbye-aspnet-forum-ads/feed/</wfw:commentRss>
		</item>
		<item>
		<title>JavaScript is awesome: I want to work with Douglas Crockford!</title>
		<link>http://adam.kahtava.com/journal/2007/09/16/javascript-is-awesome-i-want-to-work-with-douglas-crockford/</link>
		<comments>http://adam.kahtava.com/journal/2007/09/16/javascript-is-awesome-i-want-to-work-with-douglas-crockford/#comments</comments>
		<pubDate>Sun, 16 Sep 2007 20:25:10 +0000</pubDate>
		<dc:creator>Adam Kahtava</dc:creator>
		
		<category><![CDATA[Firebug]]></category>

		<category><![CDATA[JavaScript]]></category>

		<category><![CDATA[Videos]]></category>

		<guid isPermaLink="false">http://adam.kahtava.com/journal/PermaLink,guid,601176f8-d497-4e1c-ad58-f0e6b9dec01a.aspx</guid>
		<description><![CDATA[Watch these amazing videos on JavaScript by Douglas Crockford (a senior JavaScript Architect at Yahoo!). I wish I could program in JavaScript all day.
 Links to Crockford&#39;s great JavaScript videos: 

 Video: JavaScript 
 Video: The Theory of the Dom 
 Video: Advanced JavaScript 
 Video: Browser Wars 
 Video: Quality 
 Video: JavaScript: The [...]]]></description>
			<content:encoded><![CDATA[<p>Watch these amazing videos on JavaScript by <a href="http://javascript.crockford.com/">Douglas Crockford</a> (a senior JavaScript Architect at Yahoo!). I wish I could program in JavaScript all day.</p>
<p> Links to Crockford&#39;s great JavaScript videos:<br /> 
<ul>
<li> <a href="http://yuiblog.com/blog/2007/01/24/video-crockford-tjpl/">Video: JavaScript</a> </li>
<li> <a href="http://yuiblog.com/blog/2006/10/20/video-crockford-domtheory/">Video: The Theory of the Dom</a> </li>
<li> <a href="http://yuiblog.com/blog/2006/11/27/video-crockford-advjs/">Video: Advanced JavaScript</a> </li>
<li> <a href="http://yuiblog.com/blog/2007/03/05/browserwars/">Video: Browser Wars</a> </li>
<li> <a href="http://yuiblog.com/blog/2007/05/16/video-crockford-quality/">Video: Quality</a> </li>
<li> <a href="http://yuiblog.com/blog/2007/06/08/video-crockford-goodstuff/">Video: JavaScript: The Good Parts</a> </li>
</ul>
<p> You might want to download <a href="http://developer.yahoo.com/yslow/">YSlow</a> for <a href="http://www.getfirebug.com/">Firebug</a> while your at it too&#8230; :)<hints id="hah_hints"> </hints></p>
]]></content:encoded>
			<wfw:commentRss>http://adam.kahtava.com/journal/2007/09/16/javascript-is-awesome-i-want-to-work-with-douglas-crockford/feed/</wfw:commentRss>
		</item>
		<item>
		<title>In Favor of Using Style Elements / Embedded Style Sheets / Style Blocks / Style Tags or Whatever You Want To Call Them inside the HTML / XHTML Body.</title>
		<link>http://adam.kahtava.com/journal/2007/03/20/in-favor-of-using-style-elements-embedded-style-sheets-style-blocks-style-tags-or-whatever-you-want-to-call-them-inside-the-html-xhtml-body/</link>
		<comments>http://adam.kahtava.com/journal/2007/03/20/in-favor-of-using-style-elements-embedded-style-sheets-style-blocks-style-tags-or-whatever-you-want-to-call-them-inside-the-html-xhtml-body/#comments</comments>
		<pubDate>Tue, 20 Mar 2007 22:20:02 +0000</pubDate>
		<dc:creator>Adam Kahtava</dc:creator>
		
		<category><![CDATA[.NET]]></category>

		<category><![CDATA[ASP.NET]]></category>

		<category><![CDATA[CSS]]></category>

		<category><![CDATA[DOM]]></category>

		<category><![CDATA[Firebug]]></category>

		<category><![CDATA[Firefox]]></category>

		<category><![CDATA[IE]]></category>

		<category><![CDATA[Opera]]></category>

		<category><![CDATA[Themes and Skins]]></category>

		<guid isPermaLink="false">http://adam.kahtava.com/journal/PermaLink,guid,fb97f8d5-0271-466f-a3f3-e09c53890ab0.aspx</guid>
		<description><![CDATA[I&#8217;ve been using Style Elements within the HTML Body tag to work around some of the design flaws presented in ASP.NET 2.0 Themes - see the second solution in this post for more details. I&#8217;ve been leary of using this method because it&#8217;s not a best practice, since it compromises the validity of the HTML [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been using <a href="http://www.w3.org/TR/REC-CSS1#containment-in-html">Style Elements</a> within the HTML Body tag to work around some of the design flaws presented in ASP.NET 2.0 Themes - see the second solution in <a href="http://adam.kahtava.com/journal/c1575144-e460-464d-b993-259ce96135f4.aspx">this post</a> for more details. I&#8217;ve been leary of using this method because it&#8217;s not a best practice, since it compromises the validity of the HTML / XHTML document. I decided to do a little more research on this subject and made the following discoveries.</p>
<p><strong>Discoveries:</strong></p>
<ol>
<li> Some of the more complex web sites (<a href="http://amazon.com/">Amazon</a> and <a href="http://www.yahoo.com/">Yahoo!</a>) make use of Style Elements within the Body Element - see the source snippets below.</li>
<li> <a href="http://en.wikipedia.org/wiki/Gecko_%28layout_engine%29">Gecko</a> (<a href="http://en.wikipedia.org/wiki/Firefox">Firefox</a>, <a href="http://en.wikipedia.org/wiki/Flock_%28web_browser%29">Flock</a>, <a href="http://en.wikipedia.org/wiki/Mozilla">Mozilla</a>, etc&#8230;) based browsers automatically move Style Elements found within the Body Element into the Head Element and render the page as expected - see the rendered Document Object Model (DOM) image below.</li>
<li> <a href="http://en.wikipedia.org/wiki/Internet_Explorer">Internet Explorer</a> doesn&#8217;t move the Style Element into the Head Element, but renders the page as expected.</li>
<li> <a href="http://en.wikipedia.org/wiki/Opera_%28internet_suite%29">Opera</a>&#8230; well I wish I knew what Opera did, but the page renders as expected.</li>
</ol>
<p><strong>Source snippet from Amazon:</strong><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: blue;"><br />
</span><br />
<span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: blue;">&lt;/</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: maroon;">table</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: blue;">&gt;</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;;"></span><br />
<span style="font-size: 10pt; font-family: &quot;Courier New&quot;;"><span>Â Â Â  </span><span style="color: blue;">&lt;/</span><span style="color: maroon;">td</span><span style="color: blue;">&gt;</span></span><br />
<span style="font-size: 10pt; font-family: &quot;Courier New&quot;;"></span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;;"><span>Â  </span><span style="color: blue;">&lt;/</span><span style="color: maroon;">tr</span><span style="color: blue;">&gt;</span></span><br />
<span style="font-size: 10pt; font-family: &quot;Courier New&quot;;"></span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: blue;">&lt;/</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: maroon;">table</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: blue;">&gt;Â </p>
<p><strong><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: blue;">&lt;</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: maroon;">style</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;;"> <span style="color: red;">type</span><span style="color: blue;">=&#8221;text/css&#8221;&gt;</span></span><br />
<span style="font-size: 10pt; font-family: &quot;Courier New&quot;;"></span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: maroon;">.lol-hr-center</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;;"> { <span style="color: red;">margin</span>: <span style="color: blue;">5px</span>; <span style="color: red;">border-top-width</span>: <span style="color: blue;">1px</span>; </span><br />
<span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: green;">/* and so on&#8230; */</span><br />
<span style="font-size: 10pt; font-family: &quot;Courier New&quot;;">}</span><br />
<span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: blue;">&lt;/</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: maroon;">style</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: blue;">&gt;</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;;"> </span></strong></p>
<p><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: blue;">&lt;</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: maroon;">div</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;;"> <span style="color: red;">id</span><span style="color: blue;">=&#8221;listoflists_data&#8221;</span> <span style="color: red;">style</span><span style="color: blue;">=&#8221;display:none&#8221;&gt; </span></span><br />
<em>Note how the Style element is located between the &lt;table&gt; and &lt;div&gt; tags.</em></p>
<p></span><br />
<strong>Source snippet from Yahoo!:</strong></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: blue;">&lt;</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: maroon;">h4</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: blue;">&gt;<br />
&lt;</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: maroon;">a</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: blue;"> <span style="color: red;">id</span><span style="color: blue;">=&#8221;paweather&#8221;</span> <span style="color: red;">class</span><span style="color: blue;">=&#8221;details&#8221;</span> <span style="color: red;">href</span><span style="color: blue;">=&#8221;r/wb/*-http://weather.yahoo.com/forecast/USKS0448_f.html&#8221;&gt;&lt;</span><span style="color: maroon;">span</span> <span style="color: red;">class</span><span style="color: blue;">=&#8221;icon&#8221;&gt;</span>Weather <span style="color: blue;">&lt;</span><span style="color: maroon;">b</span><span style="color: blue;">&gt;&lt;</span><span style="color: maroon;">strong</span><span style="color: blue;">&gt;</span>51<span style="color: red;">&amp;deg;</span><span style="color: blue;">&lt;/</span><span style="color: maroon;">strong</span><span style="color: blue;">&gt;</span>F<span style="color: blue;">&lt;/</span><span style="color: maroon;">b</span><span style="color: blue;">&gt;&lt;/</span><span style="color: maroon;">span</span><span style="color: blue;">&gt;&lt;/</span><span style="color: maroon;">a</span><span style="color: blue;">&gt;</span></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: blue;"><strong>&lt;</strong></span><strong><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: maroon;">style</span></strong><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: blue;"><strong> <span style="color: red;">type</span><span style="color: blue;">=&#8221;text/css&#8221;&gt;</span><span style="color: maroon;">#patabs</span> <span style="color: maroon;">#weather</span> <span style="color: maroon;">.icon</span>{<span style="color: red;">background</span>:<span style="color: blue;">url(http://us.i1.yimg.com/us.yimg.com/i/us/we/31/b/26.gif)</span> <span style="color: blue;">3px</span> <span style="color: blue;">2px</span><span style="color: blue;">no-repeat</span>;}<span style="color: blue;">&lt;/</span><span style="color: maroon;">style</span><span style="color: blue;">&gt;</span></strong></span></p>
<p class="MsoNormal"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: blue;"><strong></strong>&lt;/</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: maroon;">h4</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: blue;">&gt;</span><br />
<em>Note how the Style element is located within the &lt;h4&gt; tag.</em><br />
<span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: blue;"> </span><br />
<strong>A snapshot of the <a href="http://en.wikipedia.org/wiki/Document_Object_Model">Document Object Model (DOM)</a> as seen through <a href="http://www.getfirebug.com/">Firebug</a>:</strong></p>
<blockquote><p><img src="http://adam.kahtava.com/journal/images/blog/StyleInBody1.png" alt="" /><br />
<em>Note the highlighted area references the Yahoo! source snippet from above.</em>Â<br />
<strong>Conclusion:</strong> Although the Style Element within the Body Element compromises the validity of a document, some of the leaders in web design and accessibility use this approach, so it may not be as big a work around or hack.</p>
]]></content:encoded>
			<wfw:commentRss>http://adam.kahtava.com/journal/2007/03/20/in-favor-of-using-style-elements-embedded-style-sheets-style-blocks-style-tags-or-whatever-you-want-to-call-them-inside-the-html-xhtml-body/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Now supporting Opera 9 and other Web Development (CSS) Related Notes</title>
		<link>http://adam.kahtava.com/journal/2006/12/09/now-supporting-opera-9-and-other-web-development-css-related-notes/</link>
		<comments>http://adam.kahtava.com/journal/2006/12/09/now-supporting-opera-9-and-other-web-development-css-related-notes/#comments</comments>
		<pubDate>Sat, 09 Dec 2006 19:00:07 +0000</pubDate>
		<dc:creator>Adam Kahtava</dc:creator>
		
		<category><![CDATA[CSS]]></category>

		<category><![CDATA[DOM]]></category>

		<category><![CDATA[Firebug]]></category>

		<category><![CDATA[Firefox]]></category>

		<category><![CDATA[Opera]]></category>

		<guid isPermaLink="false">http://adam.kahtava.com/journal/PermaLink,guid,5efaf26f-23e5-410c-83c7-8177e09326c1.aspx</guid>
		<description><![CDATA[I noticed that a couple visitors were using the Opera web browser, so I decided to check my site with this highly W3C CSS compliant browser - see the &#8220;Acid2 Test&#8221;.
To my horror, I found my CSS wasn&#8217;t working properly.
My blog in Opera (the CSS rendering issue):

I began debugging my site by starting up Firefox [...]]]></description>
			<content:encoded><![CDATA[<p>I noticed that a couple visitors were using the <a href="http://www.opera.com/">Opera</a> web browser, so I decided to check my site with this highly <a href="http://www.w3.org/Style/CSS/">W3C CSS</a> compliant browser - see the <a href="http://en.wikipedia.org/wiki/Acid2">&#8220;Acid2 Test&#8221;</a>.</p>
<p>To my horror, I found my CSS wasn&#8217;t working properly.</p>
<p>My blog in Opera (the CSS rendering issue):<br />
<img src="http://adam.kahtava.com/journal/images/blog/adam.kahtava.com.opera.error.png" alt="" /></p>
<p>I began debugging my site by starting up <a href="http://www.mozilla.com/en-US/firefox/">Firefox</a> with the <a href="http://www.getfirebug.com/">Firebug</a> extension. Upon inspecting my <a href="http://www.w3.org/DOM/">Document Object Model (DOM)</a> and my rendered CSS I found a syntax error (a bug).</p>
<p>Using the Firebug extension for Firefox to view the DOM and related errors:<br />
<img src="http://adam.kahtava.com/journal/images/blog/adam.kahtava.firebug.error.png" alt="" /></p>
<p><strong>My error;</strong> I had erroneously entered <span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: green;">*/</span> instead ofÂ <span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: green;">/*</span> for my CSS comment. After making the changes everything rendered as expected in Opera.</p>
<p><strong>Conclusion;</strong> My site now works with Opera 9. As a rule of thumb, I generally do my CSS design in a more W3C CSS compliant browser like Firefox, Opera, etc&#8230; and then make the respective changes for proper display in IE. <a href="http://getfirebug.com/">Firebug</a> is amazing, the best web development tool I have seen in a long time. Firebug really makes debugging a breeze.</p>
<p>Other useful Firefox extensions:</p>
<ul>
<li> <a href="http://www.iosart.com/firefox/colorzilla/">Colorzilla</a> - Advanced Eyedropper, ColorPicker, Page Zoomer and other colorful goodies.</li>
<li> <a href="https://addons.mozilla.org/firefox/1532/">del.icio.us</a> - Keep, share and discover all your favorite things.</li>
<li> <a href="http://fasterfox.mozdev.org/">FasterFox</a> - Performance and network tweaks for Firefox.</li>
<li> <a href="https://addons.mozilla.org/firefox/1843/">FireBug</a> - Edit, debug, and monitor CSS, HTML, and JavaScript live in any web page.</li>
<li> <a href="http://greasemonkey.mozdev.org/">Greasemonkey</a> - Customize the way webpages look and function (hide search engine advertisements, tweak Gmail).</li>
<li> <a href="https://addons.mozilla.org/firefox/39/">Mouse Gestures</a> - Allows you to execute common commands (like page forward/backward, close tab, new tab) by mouse gestures drawn over the current webpage, without reaching for the toolbar or the keyboard.</li>
</ul>
<p>Other useful Internet Explorer extensions / toolbars:</p>
<ul>
<li> <a href="http://www.microsoft.com/downloads/details.aspx?familyid=e59c3964-672d-4511-bb3e-2d5e1db91038&amp;displaylang=en">Internet Explorer Developer Toolbar Beta 3</a> - Tools for quickly creating, understanding, and troubleshooting Web pages</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://adam.kahtava.com/journal/2006/12/09/now-supporting-opera-9-and-other-web-development-css-related-notes/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
