<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://msmvps.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Paulo Morgado : JavaScript</title><link>http://msmvps.com/blogs/paulomorgado/archive/tags/JavaScript/default.aspx</link><description>Tags: JavaScript</description><dc:language>en</dc:language><generator>CommunityServer 2008.5 SP2 (Build: 40407.4157)</generator><item><title>More On ASP.NET Validators And Validation Summary Rendering of Properties</title><link>http://msmvps.com/blogs/paulomorgado/archive/2008/06/23/more-on-asp-net-validators-and-validation-summary-rendering-of-properties.aspx</link><pubDate>Mon, 23 Jun 2008 00:47:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1636848</guid><dc:creator>Paulo Morgado</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/rsscomments.aspx?PostID=1636848</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/commentapi.aspx?PostID=1636848</wfw:comment><comments>http://msmvps.com/blogs/paulomorgado/archive/2008/06/23/more-on-asp-net-validators-and-validation-summary-rendering-of-properties.aspx#comments</comments><description>&lt;p&gt;On previous posts [&lt;a title="The Cause Of ASP.NET Validators And Validation Summary Slowness" href="http://msmvps.com/blogs/paulomorgado/archive/2008/05/12/the-cause-of-asp-net-validators-and-validation-summary-slowness.aspx" target="_blank"&gt;^&lt;/a&gt;][&lt;a title="Rendering ASP.NET Validators And Validation Summary Property As HTML Attributes" href="http://msmvps.com/blogs/paulomorgado/archive/2008/05/13/rendering-asp-net-validators-and-validation-summary-property-as-html-attributes.aspx" target="_blank"&gt;^&lt;/a&gt;] I mentioned the size of &lt;a title="ASP.NET Developer Center" href="http://msdn.microsoft.com/asp.net/" target="_blank"&gt;ASP.NET&lt;/a&gt; validators and validation summary rendering and the fact that &lt;a title="ClentScriptManager.RegisterExpandoAttribute Method" href="http://msdn.microsoft.com/library/system.web.ui.clientscriptmanager.registerexpandoattribute.aspx" target="_blank"&gt;expando attributes&lt;/a&gt; are being used to add properties. &lt;a title="Guru Stop - Mohamed Meligy blogging the interests of an Egyptian .NET software engineer (Communities, Architecture, Patterns, etc..)" href="http://weblogs.asp.net/meligy/" target="_blank"&gt;Mohamed&lt;/a&gt; also &lt;a title="Prevent ASP.NET Validators from Massively Increasing Page Size" href="http://weblogs.asp.net/meligy/archive/2008/06/17/prevent-asp-net-validators-from-massively-increasing-page-size.aspx" target="_blank"&gt;mentions&lt;/a&gt; this issue.&lt;/p&gt;
&lt;p&gt;Besides the fact that custom attributes aren&amp;#39;t &lt;a title="XHTML2 Working Group Home Page" href="http://www.w3.org/MarkUp/" target="_blank"&gt;XHTML&lt;/a&gt; conformant, &lt;a title="Firefox web browser" href="http://www.firefox.com/" target="_blank"&gt;Firefox&lt;/a&gt; differs from &lt;a title="Internet Explorer" href="http://www.microsoft.com/ie" target="_blank"&gt;Internet Explorer&lt;/a&gt; in the way it handles these attributes.&lt;/p&gt;
&lt;p&gt;On &lt;a title="Internet Explorer" href="http://www.microsoft.com/ie" target="_blank"&gt;Internet Explorer&lt;/a&gt;, these attributes are converted in string properties of the HTML element. On &lt;a title="Firefox web browser" href="http://www.firefox.com/" target="_blank"&gt;Firefox&lt;/a&gt;, on the other hand, these attributes are only accessible through the &lt;strong&gt;attributes&lt;/strong&gt; collection.&lt;/p&gt;
&lt;p&gt;I wonder why I don’t like client-side JavaScript development.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1636848" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/.NET/default.aspx">.NET</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/SoftDev/default.aspx">SoftDev</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/MSDN/default.aspx">MSDN</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Web/default.aspx">Web</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/InternetExplorer/default.aspx">InternetExplorer</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/JavaScript/default.aspx">JavaScript</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/FireFox/default.aspx">FireFox</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/HTML/default.aspx">HTML</category></item><item><title>Rendering ASP.NET Validators And Validation Summary Property As HTML Attributes</title><link>http://msmvps.com/blogs/paulomorgado/archive/2008/05/13/rendering-asp-net-validators-and-validation-summary-property-as-html-attributes.aspx</link><pubDate>Tue, 13 May 2008 00:34:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1621419</guid><dc:creator>Paulo Morgado</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/rsscomments.aspx?PostID=1621419</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/commentapi.aspx?PostID=1621419</wfw:comment><comments>http://msmvps.com/blogs/paulomorgado/archive/2008/05/13/rendering-asp-net-validators-and-validation-summary-property-as-html-attributes.aspx#comments</comments><description>&lt;p&gt;Yesterday I blogged about &lt;a class="" title="The Cause Of ASP.NET Validators And Validation Summary Slowness" href="http://weblogs.asp.net/paulomorgado/archive/2008/05/12/the-cause-of-asp-net-validators-and-validation-summary-slowness.aspx" target="_blank"&gt;the cause of ASP.NET validators and validation summary slowness&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;At that point I wasn&amp;#39;t aware of the existence of the &lt;a title="xhtmlConformance Element (ASP.NET Settings Schema)" href="http://msdn.microsoft.com/library/ms228268.aspx" target="_blank"&gt;XHTML conformance configuration&lt;/a&gt; (thanks &lt;a title="Nuno Faro Gomes" href="http://nunogomes.net/" target="_blank"&gt;Nuno&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;With the XHTML conformance configuration set to &lt;strong&gt;Legacy&lt;/strong&gt;, the rendering of controls works like it worked in ASP.NET 1.1.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1621419" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/.NET/default.aspx">.NET</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/SoftDev/default.aspx">SoftDev</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/MSDN/default.aspx">MSDN</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Web/default.aspx">Web</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Tools/default.aspx">Tools</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/JavaScript/default.aspx">JavaScript</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/AJAX/default.aspx">AJAX</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/HTML/default.aspx">HTML</category></item><item><title>The Cause Of ASP.NET Validators And Validation Summary Slowness</title><link>http://msmvps.com/blogs/paulomorgado/archive/2008/05/12/the-cause-of-asp-net-validators-and-validation-summary-slowness.aspx</link><pubDate>Sun, 11 May 2008 23:17:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1620018</guid><dc:creator>Paulo Morgado</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/rsscomments.aspx?PostID=1620018</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/commentapi.aspx?PostID=1620018</wfw:comment><comments>http://msmvps.com/blogs/paulomorgado/archive/2008/05/12/the-cause-of-asp-net-validators-and-validation-summary-slowness.aspx#comments</comments><description>&lt;p align="justify"&gt;When building &lt;a title="ASP.NET Developer Center" href="http://msdn.microsoft.com/asp.net/" target="_blank"&gt;ASP.NET&lt;/a&gt; pages, if you use too many validators and validation summaries your pages can become very slow. Have you ever wondered why?&lt;/p&gt;
&lt;p align="justify"&gt;Lets build a simple page web page with a few validators. Something like this:&lt;/p&gt;
&lt;p&gt;&lt;img style="BORDER-RIGHT:0px;BORDER-TOP:0px;BORDER-LEFT:0px;BORDER-BOTTOM:0px;" height="212" alt="Web page with validation" src="http://weblogs.asp.net/blogs/paulomorgado/WindowsLiveWriter/VisualStudi.51SP1BetaAvailableToDownload_14B70/WebPageWithValidators_thumb_2.png" width="217" border="0" /&gt; &lt;/p&gt;
&lt;p&gt;The page is composed of:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;2 &lt;a title="TextBox Class" href="http://msdn.microsoft.com/library/system.web.ui.webcontrols.textbox.aspx" target="_blank"&gt;TextBox&lt;/a&gt;es &lt;/li&gt;
&lt;li&gt;1 &lt;a title="RequiredFieldValidator Class" href="http://msdn.microsoft.com/library/system.web.ui.webcontrols.RequiredFieldValidator.aspx" target="_blank"&gt;RequiredFieldValidator&lt;/a&gt; for each &lt;strong&gt;TextBox&lt;/strong&gt; &lt;/li&gt;
&lt;li&gt;1 &lt;a title="RangeValidator Class" href="http://msdn.microsoft.com/library/system.web.ui.webcontrols.RangeValidator.aspx" target="_blank"&gt;RangeValidator&lt;/a&gt; for each &lt;strong&gt;TextBox&lt;/strong&gt; &lt;/li&gt;
&lt;li&gt;1 &lt;a title="CompareValidator Class" href="http://msdn.microsoft.com/library/system.web.ui.webcontrols.CompareValidator.aspx" target="_blank"&gt;CompareValidator&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;1 &lt;a title="ValidationSummary Class" href="http://msdn.microsoft.com/library/system.web.ui.webcontrols.validationsummary.aspx" target="_blank"&gt;ValidationSummary&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;1 &lt;a href="http://msdn.microsoft.com/library/system.web.ui.webcontrols" target="_blank"&gt;Button&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;
&lt;p align="justify"&gt;ASP.NET renders the &lt;strong&gt;ValidationSummary&lt;/strong&gt; as a &lt;strong&gt;DIV&lt;/strong&gt; and each validator as a &lt;strong&gt;SPAN&lt;/strong&gt; and uses &lt;a title="ClientScriptManager.RegisterExpandoAttribute Method" href="http://msdn.microsoft.com/library/system.web.ui.clientscriptmanager.registerexpandoattribute.aspx" target="_blank"&gt;expando attributes&lt;/a&gt; to add properties to those elements.&lt;/p&gt;
&lt;p align="justify"&gt;&lt;a title="ClientScriptManager.RegisterExpandoAttribute Method (String, String, String)" href="http://msdn.microsoft.com/library/ms153122.aspx" target="_blank"&gt;According to the documentation&lt;/a&gt;, expando attributes are set dynamically from JavaScript to preserve &lt;a title="XHTML2 Working Group Home Page" href="http://www.w3.org/MarkUp/" target="_blank"&gt;XHTML&lt;/a&gt; compatibility for the rendered control&amp;#39;s markup.&lt;/p&gt;
&lt;p align="justify"&gt;The problem is that all that JavaScript makes the HTML document larger and slower to execute than if the properties were rendered in HTML as attributes of the elements.&lt;/p&gt;
&lt;p align="justify"&gt;For such a small page, the difference in size approaches 2k bytes. If you add a few dozen validators to he page, the slowness is noticeable.&lt;/p&gt;
&lt;p align="justify"&gt;I&amp;#39;m all in favor of strict standards and standards compliance, but in this case, I wish &lt;strong&gt;XHTML&lt;/strong&gt; would allow arbitrary attributes.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1620018" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/.NET/default.aspx">.NET</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/SoftDev/default.aspx">SoftDev</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/MSDN/default.aspx">MSDN</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Web/default.aspx">Web</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Tools/default.aspx">Tools</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/JavaScript/default.aspx">JavaScript</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/AJAX/default.aspx">AJAX</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/HTML/default.aspx">HTML</category></item><item><title>JSMock on CodePlex</title><link>http://msmvps.com/blogs/paulomorgado/archive/2007/12/27/jsmock-on-codeplex.aspx</link><pubDate>Thu, 27 Dec 2007 21:57:09 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1422597</guid><dc:creator>Paulo Morgado</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/rsscomments.aspx?PostID=1422597</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/commentapi.aspx?PostID=1422597</wfw:comment><comments>http://msmvps.com/blogs/paulomorgado/archive/2007/12/27/jsmock-on-codeplex.aspx#comments</comments><description>&lt;p&gt;&lt;a title="Creative Minds - because we all have one" href="http://brunofigueiredo.com/" target="_blank"&gt;Bruno&lt;/a&gt; has set up a &lt;a title="JSMock Project" href="http://www.codeplex.com/jsmock" target="_blank"&gt;project&lt;/a&gt; at &lt;a title="CodePlex - Open Source Project Community" href="http://www.codeplex.com/" target="_blank"&gt;CodePlex&lt;/a&gt; for his testing framework for &lt;a title="JavaScript" href="http://www.wikipedia.org/wiki/Javascript" target="_blank"&gt;JavaScript&lt;/a&gt;.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1422597" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/SoftDev/default.aspx">SoftDev</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/MSDN/default.aspx">MSDN</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/MVP/default.aspx">MVP</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Web/default.aspx">Web</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Tools/default.aspx">Tools</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Testing/default.aspx">Testing</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/UnitTests/default.aspx">UnitTests</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/JavaScript/default.aspx">JavaScript</category></item><item><title>How To Close Browser Windows In Windows Internet Explorer 7</title><link>http://msmvps.com/blogs/paulomorgado/archive/2007/11/02/how-to-close-browser-windows-in-windows-internet-explorer-7.aspx</link><pubDate>Fri, 02 Nov 2007 01:38:39 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1277453</guid><dc:creator>Paulo Morgado</dc:creator><slash:comments>30</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/rsscomments.aspx?PostID=1277453</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/commentapi.aspx?PostID=1277453</wfw:comment><comments>http://msmvps.com/blogs/paulomorgado/archive/2007/11/02/how-to-close-browser-windows-in-windows-internet-explorer-7.aspx#comments</comments><description>&lt;p align="justify"&gt;When a web page uses scripting to close a browser window that was opened by the user and not opened by some action on another page, Internet Explorer pops up a question to the user warning that &amp;quot;&lt;strong&gt;The webpage you are viewing is trying to close the tab.&lt;/strong&gt;&amp;quot; (in this case, Internet Explorer 7) and asking the user for permission to close the tab.&lt;/p&gt; &lt;p align="justify"&gt;Before Internet Explorer 7, all that was needed to do was setting the &lt;strong&gt;window.opener&lt;/strong&gt; property to a non null value:&lt;/p&gt; &lt;div class="quote"&gt;&lt;pre class="code"&gt;window.opener = self;
window.close();
&lt;/pre&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p align="justify"&gt;Unfortunately, Internet Explorer 7 isn&amp;#39;t fooled by this. Internet Explorer 7 knows if the window was opened by the user or not, regardless the value of the &lt;strong&gt;window.opener&lt;/strong&gt; property.&lt;/p&gt;
&lt;p align="justify"&gt;Fortunately, Internet Explorer can still be fooled:&lt;/p&gt;
&lt;div class="quote"&gt;&lt;pre class="code"&gt;window.open(&lt;span style="color:#a31515;"&gt;&amp;quot;&amp;quot;&lt;/span&gt;,&lt;span style="color:#a31515;"&gt;&amp;quot;_self&amp;quot;&lt;/span&gt;);
window.close();
&lt;/pre&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p align="justify"&gt;Going one step further, if you want all your calls to the &lt;strong&gt;window.close&lt;/strong&gt; method to work this way, you can change the method implementation like in the following example:&lt;/p&gt;
&lt;div class="quote"&gt;&lt;pre class="code"&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;!&lt;/span&gt;&lt;span style="color:#a31515;"&gt;DOCTYPE&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;html&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;PUBLIC&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;&amp;quot;-//W3C//DTD XHTML 1.0 Transitional//EN&amp;quot;&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;&amp;quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&amp;quot;&amp;gt;
&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;html&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;xmlns&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot;&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;&amp;gt;
&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;head&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;
&lt;/span&gt;    &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;title&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;Untitled Page&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;title&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;
&lt;/span&gt;    &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;script&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;type&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;text/javascript&amp;quot;&amp;gt;
&lt;/span&gt;    &lt;span style="color:#008000;"&gt;// Save a reference to the original method.
&lt;/span&gt;    &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; windowClose = window.close;

    &lt;span style="color:#008000;"&gt;// Re-implement window.open
&lt;/span&gt;    window.close = &lt;span style="color:#0000ff;"&gt;function&lt;/span&gt; ()
    {
        window.open(&lt;span style="color:#a31515;"&gt;&amp;quot;&amp;quot;&lt;/span&gt;,&lt;span style="color:#a31515;"&gt;&amp;quot;_self&amp;quot;&lt;/span&gt;);
        windowClose();
    }
    &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;script&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;
&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;head&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;
&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;body&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;
&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;input&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;type&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;button&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;value&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;Close Me!&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;onclick&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;window.close()&amp;quot;&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;/&amp;gt;
&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;input&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;type&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;button&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;value&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;Close Me!&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;onclick&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;windowClose()&amp;quot;&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;/&amp;gt;
&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;body&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;
&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;html&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;
&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1277453" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/SoftDev/default.aspx">SoftDev</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/MSDN/default.aspx">MSDN</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Web/default.aspx">Web</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/InternetExplorer/default.aspx">InternetExplorer</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/JavaScript/default.aspx">JavaScript</category></item></channel></rss>