<?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>Debugando.com &#187; JavaScript/Ajax</title>
	<atom:link href="http://www.debugando.com/categoria/programacao/javascript/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.debugando.com</link>
	<description>Noticias, dicas e tutorias do mundo da Tecnologia.</description>
	<lastBuildDate>Thu, 01 Dec 2011 23:44:46 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>Tudo Sobre JavaScript</title>
		<link>http://www.debugando.com/tudo-sobre-javascript/</link>
		<comments>http://www.debugando.com/tudo-sobre-javascript/#comments</comments>
		<pubDate>Wed, 24 Mar 2010 18:43:35 +0000</pubDate>
		<dc:creator>Lincoln César</dc:creator>
				<category><![CDATA[Dicas]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[JavaScript/Ajax]]></category>
		<category><![CDATA[Noticias]]></category>
		<category><![CDATA[Tecnologia]]></category>
		<category><![CDATA[o que e javascript]]></category>
		<category><![CDATA[plugin noscript]]></category>
		<category><![CDATA[tudo sobre javascript]]></category>

		<guid isPermaLink="false">http://www.debugando.com/?p=957</guid>
		<description><![CDATA[



O que é Javascript? É perigoso permitir Javascript no             navegador? Quais os riscos inerentes a ele e quais formas de             se proteger? 
 

Javascript é uma linguagem de programação usada  [...]]]></description>
			<content:encoded><![CDATA[<p><em><a href="http://www.debugando.com/wp-content/uploads/2010/03/038610939-FMMP00.jpg"><img class="alignleft size-full wp-image-958" style="margin: 5px;" title="0,,38610939-FMMP,00" src="http://www.debugando.com/wp-content/uploads/2010/03/038610939-FMMP00.jpg" alt="" width="69" height="92" /></a></em></p>
<p><em><strong>O que é Javascript? É perigoso permitir Javascript no             navegador? Quais os riscos inerentes a ele e quais formas de             se proteger? </strong><br />
</em> <strong><br />
</strong></p>
<p>Javascript é uma linguagem de programação usada         por sites para adicionar recursos dinâmicos em páginas de         internet. O Javascript permite ao desenvolvedor do site muita         flexibilidade. Um exemplo é aquele botao que permite aumentar ou diminuir as fontes existentes em varios sites.</p>
<p>Há tantas possibilidades de uso de Javascript que         seria impossível citar todas. Há até mesmo joguinhos simples         feitos em Javascript.</p>
<p>É claro que essa riqueza de possibilidades resulta         em uma linguagem complexa. Para piorar, o Javascript foi         “crescendo” com o tempo e cada navegador web decidiu interpretar         comandos diferentes da mesma forma. Isso adicionou ainda mais         complexidade, tanto para quem faz códigos Javascript como para         quem faz os navegadores, que precisam funcionar com o maior         número possível de códigos.</p>
<p>O Javascript é, portanto, o tipo de código mais         complexo com o qual os navegadores precisam lidar. E quanto mais         difícil é fazer algo, maior a probabilidade de ocorrerem erros.         Não existe nenhum risco inerente ao Javascript, exceto pela         complexidade desnecessária criada pelo histórico conturbado da         linguagem.</p>
<p>De qualquer forma, problema maior está no fato de         que os programadores podem cometer muitos erros na criação do         componente responsável pelo processamento dos códigos. Isso         resulta em vulnerabilidades.</p>
<p>Como o Javascript interage com a página, além dos         erros existentes nele mesmo, ele também pode ser peça-chave na         exploração de erros em outras funcionalidades do navegador. É         por isso que tantas falhas têm como solução temporária a         desativação de Javascript.</p>
<p>Diferentemente de outras linguagens de         programação, existe muita tolerância na programação de páginas         web. Mesmo códigos “errados” funcionam devido aos esforços dos         navegadores para tentar fazer a página aparecer na tela. Além         disso, erros em navegadores web também moldaram as linguagens,         quer dizer, programadores acabaram dependendo de erros para         fazer as páginas aparecerem do jeito que queriam. Ainda hoje, os         navegadores precisam detectar esses “erros” e “saber” o que o         criador da página pretende.</p>
<p>É por isso que não apenas Javascript, mas até uma         linguagem aparentemente simples como o HTML – principal         responsável pelas páginas de internet – acabam sendo difíceis de         “digerir” pelos softwares.</p>
<p>Não é possível navegar na internet sem Javascript.         A grande maioria dos sites apresentará defeito ou perda de         funcionalidade. Para o Firefox, o <strong><a href="https://addons.mozilla.org/pt-BR/firefox/addon/722" target="_blank">plugin NoScript</a></strong> limita os poderes do         Javascript, mas também adiciona transtornos na navegação. Fica a         critério de cada um optar pela segurança ou pela comodidade. De         qualquer maneira, manter o navegador sempre atualizado é essencial         para que qualquer brecha conhecida, seja no processamento de         Javascript ou outro componente, seja eliminada.</p>
<p><strong>Fonte:</strong> G1</p>
]]></content:encoded>
			<wfw:commentRss>http://www.debugando.com/tudo-sobre-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Conheça a bibliteca JavaScript jQuery</title>
		<link>http://www.debugando.com/conheca-a-bibliteca-javascript-jquery/</link>
		<comments>http://www.debugando.com/conheca-a-bibliteca-javascript-jquery/#comments</comments>
		<pubDate>Wed, 21 Oct 2009 17:55:06 +0000</pubDate>
		<dc:creator>Lincoln César</dc:creator>
				<category><![CDATA[JavaScript/Ajax]]></category>
		<category><![CDATA[Programação]]></category>

		<guid isPermaLink="false">http://www.debugando.com/?p=678</guid>
		<description><![CDATA[
As apps da web 2.0 são uma doce verdade, isso tudo graças à uma metodologia chamada Ajax(Asynchronous Javascript And XML). O Ajax ficou famoso após o lançamento do Gmail em 2004, muitos acham que o Gmail é o começo do plano de conspiração do Google, mas isso é outra história.
O Ajax trouxe muitas vantagens aos [...]]]></description>
			<content:encoded><![CDATA[<p><img class="size-full wp-image-47" style="margin: 10px" title="jQuery Logo" src="http://www.comandodigital.com.br/wp-content/uploads/2009/02/jquery-logo1.jpg" alt="jQuery Logo" width="174" height="144" align="left" /></p>
<p>As apps da web 2.0 são uma doce verdade, isso tudo graças à uma metodologia chamada Ajax(<strong>Asynchronous Javascript And XML</strong>). O Ajax ficou famoso após o lançamento do Gmail em 2004, muitos acham que o Gmail é o começo do plano de conspiração do Google, mas isso é outra história.</p>
<p>O Ajax trouxe muitas vantagens aos internautas, antigamente quando clicava-se em um link, uma nova página era aberta, e todas as imagens e menus anteriores eram carregados inumeras  vezes, com o Ajax é diferete, apenas partes especifícas são recarregados.</p>
<p>Essa mania pegou rapidamente, pois a agilidade que isso tras ao programador é imensa, o problema é que existem muitos navegadores, e o <strong>JavaScript</strong> se comporta de varias maneiras, tudo isso pelo fato de que o programador tem que criar um objeto <strong>XMLHTTP Request</strong> para o IE, Firefox, Safari, Chrome e outros.</p>
<p>Nesse ponto, surge o <strong>jQuery</strong>, que se comporta de forma inteligente na maioria dos Navegadores, facilitando ainda mais a vida dos programadores, ou seja, funciona em um, funciona em todos. Para entender um pouco mais sobre o <strong>jQuery</strong> assista o Vídeo Post feito por <a title="Professional Blogger" href="http://www.professionalblogger.com.br" target="_blank">Diego Soares</a> que lhe mostrará as funcionalidades básicas do <strong>jQuery</strong> e como aplicar os códigos em suas aplicações, fique à vontade para comentar este artigo.</p>
<p>Para assistir o vídeo com uma qualidade melhor, acesse <a title="Conheça o jQuery" href="http://www.vimeo.com/3165655" target="_blank">http://www.vimeo.com/3165655</a> ou <a title="Conheça o JavaScript Jquery" href="http://videolog.uol.com.br/video.php?id=410377" target="_blank">http://videolog.uol.com.br/video.php?id=410377</a> ou assista no player abaixo.</p>
<div><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="504" height="405" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://www.videolog.tv/ajax/codigoPlayer.php?id_video=410377&amp;relacionados=S&amp;default=N&amp;cor_fundo=ndefined&amp;swf=1&amp;width=504&amp;height=405" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="504" height="405" src="http://www.videolog.tv/ajax/codigoPlayer.php?id_video=410377&amp;relacionados=S&amp;default=N&amp;cor_fundo=ndefined&amp;swf=1&amp;width=504&amp;height=405" allowfullscreen="true"></embed></object></div>
]]></content:encoded>
			<wfw:commentRss>http://www.debugando.com/conheca-a-bibliteca-javascript-jquery/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Barra de Progresso com AJAX</title>
		<link>http://www.debugando.com/barra-de-progresso-com-ajax/</link>
		<comments>http://www.debugando.com/barra-de-progresso-com-ajax/#comments</comments>
		<pubDate>Thu, 30 Apr 2009 18:59:59 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[JavaScript/Ajax]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[Add new tag]]></category>
		<category><![CDATA[Ajax]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.debugando.com/?p=581</guid>
		<description><![CDATA[
Uma das necessidades com que nos deparamos na hora de realizar projetos longos na web é indicar ao  usuário o quanto é preciso esperar. Às vezes é bastante complicado criar uma barra de progresso que mostre o estado atual do processo que está sendo executado.
Uma forma de realizar essa tarefa é usando AJAX. Fazemos [...]]]></description>
			<content:encoded><![CDATA[<div id="strConteudo">
<p>Uma das necessidades com que nos deparamos na hora de realizar projetos longos na web é indicar ao  usuário o quanto é preciso esperar. Às vezes é bastante complicado criar uma barra de progresso que mostre o estado atual do processo que está sendo executado.</p>
<p>Uma forma de realizar essa tarefa é usando AJAX. Fazemos uma chamada AJAX que executa a ação, e quando o objeto AJAX tem o estado LOADING (readyState == 3), podemos obter a resposta do script chamado e passá-lo para mostrar o percentual da ação que está sendo realizada.</p>
<p>Para isso, desenvolveremos um script (res. php, por exemplo) que devolva a porcentagem seguida por um hífen. Por exemplo, quando passar por 1% será retornado pelo script &#8220;1-&#8221;, quando passar por 5% será retornado &#8220;1-2-3-4-5&#8243;. Processando isso podemos saber, através do último número, o percentual já processado.</p>
<p>O PHP seria o seguinte:</p>
<div class="codigo">
<pre><em><code><span class="kwd">for</span><span class="pun">(</span><span class="pln">$i</span><span class="pun">=</span><span class="lit">0</span><span class="pun">;</span><span class="pln"> $i</span><span class="pun">&lt;</span><span class="lit">10000000</span><span class="pun">;</span><span class="pln"> $i</span><span class="pun">++)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
</span><span class="kwd">  if</span><span class="pln"> </span><span class="pun">(</span><span class="pln">$i</span><span class="pun">%</span><span class="lit">10000</span><span class="pln"> </span><span class="pun">==</span><span class="pln"> </span><span class="lit">0</span><span class="pun">)</span><span class="pln"> echo </span><span class="pun">((</span><span class="kwd">int</span><span class="pun">)</span><span class="pln"> $i</span><span class="pun">/</span><span class="lit">100000</span><span class="pun">)</span><span class="pln">.</span><span class="str">'-'</span><span class="pun">;</span><span class="pln">
  flush</span><span class="pun">();</span><span class="pln">
</span><span class="pun">}</span><span class="pln"> </span></code></em></pre>
</div>
<p>E o JavaScript seria assim:</p>
<div class="codigo">
<pre><code><em><span class="kwd">function</span><span class="pln"> ajaxobj</span><span class="pun">()</span><span class="pln"> </span><span class="pun">{</span><span class="pln">  
</span><span class="kwd">  try</span><span class="pln"> </span><span class="pun">{</span><span class="pln">  
    _ajaxobj </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">ActiveXObject</span><span class="pun">(</span><span class="str">"Msxml2.XMLHTTP"</span><span class="pun">);</span><span class="pln">  
</span><span class="pun">  }</span><span class="pln"> </span><span class="kwd">catch</span><span class="pln"> </span><span class="pun">(</span><span class="pln">e</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">  
</span><span class="kwd">  try</span><span class="pln"> </span><span class="pun">{</span><span class="pln">  
    _ajaxobj </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">ActiveXObject</span><span class="pun">(</span><span class="str">"Microsoft.XMLHTTP"</span><span class="pun">);</span><span class="pln">  
</span><span class="pun">  }</span><span class="pln"> </span><span class="kwd">catch</span><span class="pln"> </span><span class="pun">(</span><span class="pln">E</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">  
    _ajaxobj </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">false</span><span class="pun">;</span><span class="pln">  
</span><span class="pun">  }</span><span class="pln">  
</span><span class="pun">}</span><span class="pln">  

 </span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(!</span><span class="pln">_ajaxobj </span><span class="pun">&amp;&amp;</span><span class="pln"> </span><span class="kwd">typeof</span><span class="pln"> </span><span class="typ">XMLHttpRequest</span><span class="pun">!=</span><span class="str">'undefined'</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">  
   _ajaxobj </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">XMLHttpRequest</span><span class="pun">();</span><span class="pln">  
</span><span class="pun"> }</span><span class="pln">  

</span><span class="kwd"> return</span><span class="pln"> _ajaxobj</span><span class="pun">;</span></em><span class="pln"><em> </em> 
</span><span class="pun">}</span><span class="pln">
</span><em><span class="kwd">function</span><span class="pln"> prueba </span><span class="pun">()</span><span class="pln"> </span><span class="pun">{</span><span class="pln">  
  ajax </span><span class="pun">=</span><span class="pln"> ajaxobj</span><span class="pun">();</span><span class="pln">  
  ajax</span><span class="pun">.</span><span class="pln">open</span><span class="pun">(</span><span class="str">"GET"</span><span class="pun">,</span><span class="pln"> </span><span class="str">"res.php"</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">true</span><span class="pun">);</span><span class="pln">  
  ajax</span><span class="pun">.</span><span class="pln">onreadystatechange</span><span class="pun">=</span><span class="kwd">function</span><span class="pun">()</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
</span><span class="kwd">  if</span><span class="pln"> </span><span class="pun">(</span><span class="pln">ajax</span><span class="pun">.</span><span class="pln">readyState </span><span class="pun">==</span><span class="pln"> </span><span class="lit">3</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">  

</span><span class="com">   // Mostramos o percentual </span><span class="pln">
</span><span class="kwd">   var</span><span class="pln"> res </span><span class="pun">=</span><span class="pln"> ajax</span><span class="pun">.</span><span class="pln">responseText</span><span class="pun">;</span><span class="pln">
   res </span><span class="pun">=</span><span class="pln"> res</span><span class="pun">.</span><span class="pln">split</span><span class="pun">(</span><span class="str">'-'</span><span class="pun">);</span><span class="pln">  
   alert</span><span class="pun">(</span><span class="pln">res</span><span class="pun">[</span><span class="pln">res</span><span class="pun">.</span><span class="pln">length</span><span class="pun">-</span><span class="lit">2</span><span class="pun">]);</span><span class="pln">  
</span><span class="pun">  }</span><span class="pln"> </span><span class="kwd">else</span><span class="pln"> </span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="pln">ajax</span><span class="pun">.</span><span class="pln">readyState </span><span class="pun">==</span><span class="pln"> </span><span class="lit">4</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">  

</span><span class="com">  // Fim</span><span class="pln">
  alert</span><span class="pun">(</span><span class="str">'FIM'</span><span class="pun">);</span><span class="pln">  
</span><span class="pun"> }</span><span class="pln">  
</span><span class="pun">}</span><span class="pln">  

</span><span class="com"> // Enviamos algo para que o processo funcione</span><span class="pln">
 ajax</span><span class="pun">.</span><span class="pln">send</span><span class="pun">(</span><span class="kwd">null</span><span class="pun">);</span><span class="pln">  
</span><span class="pun">}</span><span class="pln">  </span></em></code></pre>
</div>
<p>Como não existe nada perfeito, e menos ainda o Internet Explorer, esse script só funcionou no Firefox, Opera, Safari e Chrome.</p>
<p><img src="http://www.pplware.com/wp-content/images/ico_04.jpg" alt="" width="32" height="35" />Fonte: <a href="http://imasters.uol.com.br/artigo/12615/ajax/barra_de_progresso_com_ajax/" target="_blank">Imasters</a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.debugando.com/barra-de-progresso-com-ajax/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Colocando minha empresa no mapa&#8230;</title>
		<link>http://www.debugando.com/colocando-minha-empresa-no-mapa/</link>
		<comments>http://www.debugando.com/colocando-minha-empresa-no-mapa/#comments</comments>
		<pubDate>Mon, 27 Apr 2009 21:36:57 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Google API]]></category>
		<category><![CDATA[JavaScript/Ajax]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[Google Maps]]></category>

		<guid isPermaLink="false">http://www.debugando.com/?p=578</guid>
		<description><![CDATA[Este artigo, por mais simples que seja, tende a ser uma das maiores dúvidas e desejos dos usuários que estão iniciando nesta área. Como colocar minha empresa, estabelecimento, casa etc., no mapa. Com certeza no seu site é muito importante existir além do endereço da sua empresa um pequeno mapa representando tudo que está em [...]]]></description>
			<content:encoded><![CDATA[<p>Este artigo, por mais simples que seja, tende a ser uma das maiores dúvidas e desejos dos usuários que estão iniciando nesta área. Como colocar minha empresa, estabelecimento, casa etc., no mapa. Com certeza no seu site é muito importante existir além do endereço da sua empresa um pequeno mapa representando tudo que está em volta dela para que os usuários possam se localizar mais facilmente.</p>
<p>Nosso foco hoje é criar um mapa utilizando a API do Google Maps. Com isso, não precisamos de nenhum banco de dados geográfico ou qualquer outro tipo de aplicação para desenvolvimento de mapas além das linguagens HTML e JavaScript.</p>
<p><strong>Segundo o próprio Google, o que é a API do Google Maps?</strong></p>
<p>A API do Google Maps permite usar JavaScript para incorporar o Google Maps em sua página da web. A API fornece diversos utilitários para manipular mapas (como na página http://maps.google.com) e adicionar conteúdo ao mapa através de diversos serviços. Você pode criar aplicativos de mapas robustos em seu site.</p>
<h4><strong>Passo 1: Obtendo uma chave para a API do Google Maps.</strong></h4>
<p>Para utilizarmos a API do Google, precisamos obter uma chave de identificação para o nosso site. É muito importante que você coloque a URL correta do caminho onde estará o mapa, caso contrário, ao instanciar a API no seu código, ela não funcionará.</p>
<p>Acesse o link : <a class="ext" href="http://code.google.com/intl/pt-BR/apis/maps/signup.html">http://code.google.com/intl/pt-BR/apis/maps/signup.html</a>, preencha as informações da URL do seu site e clique em <strong>GERAR chave de API</strong>. Não se esqueça de ler os termos de uso da API, nada de utilizá-la dentro de intranets.</p>
<p><img src="http://conteudo.imasters.uol.com.br/12495/chave_api2.gif" alt="" /></p>
<p><span class="c1"><strong>Obs.: Você precisa ter um usuário cadastrado no Google para obtê-la.</strong></span></p>
<p><img src="http://conteudo.imasters.uol.com.br/12495/thank_you.gif" alt="" /></p>
<p>Pronto, chave gerada, podemos ir para o próximo passo.</p>
<h4><strong>Passo 2: Obtendo o XY da sua empresa</strong></h4>
<p>Inicialmente, para identificarmos a sua empresa/estabelecimento/etc no mapa, precisamos da localização correta dela. A localização que comento é com relação ao seu XY. <strong>Mas o que é XY?</strong> Vamos à matemática&#8230;</p>
<p>Para a construção do modelo da superfície topográfica de uma dada região, necessitamos das triplas (x, y, z) de uma série de pontos da superfície do terreno. Os valores (x, y, z) são as coordenadas cartesianas de um ponto P, relativas a um sistema de coordenadas preestabelecido (como já vimos em meu outro artigo <a href="http://imasters.uol.com.br/artigo/12308/outros/sistemas_de_informacao_geografica/">Sistemas de Informação Geográfica</a>).</p>
<p>O plano XY é o plano horizontal de referência relativamente ao nível médio dos mares, e z é a distância vertical do ponto P ao plano horizontal XY (se me permitem exemplificar desta maneira, seria a altura em relação ao nível do mar, no nosso caso, não será necessária).</p>
<p><strong>Como posso obter este ponto?</strong></p>
<p>Existem diversas maneiras de se obter o XY de um endereço, vou exemplificar duas: a primeira é suscetível a alguns erros, motivo pelo qual o mapeamento da numeração das ruas nas cidades do Brasil não ser de fato correto (mas confesso que é satisfatório). O que quero dizer é que muitas vezes quando você informa o seu endereço, por exemplo o número 567, seriam 567 metros do ponto inicial da sua rua, nem sempre esta numeração irá bater exatamente no local da sua casa (quando digo exatamente, ainda considero um erro de 50m). Pode acontecer de aparecer na quadra errada; quando ocorrer, sugiro utilizar o segundo exemplo de aquisição do XY.</p>
<p>A primeira maneira que me refiro é solicitar através da url <strong>http://maps.google.com/maps/geo?q=</strong><span class="c1">STRING+DO+ENDERECO</span><strong>output=xmlkey=</strong><span class="c1">SUA_CHAVE</span></p>
<p><strong>Obs.: Separe a string com &#8220;+&#8221;.</strong></p>
<p>Exemplo:</p>
<p>http://maps.google.com/maps/geo?q=<strong>avenidaipiranga1200portoalegrersbrasil</strong>output=xmlkey=</p>
<p><strong>Exemplo da resposta (response) em XML:</strong></p>
<p><img src="http://conteudo.imasters.uol.com.br/12495/response_xml.gif" alt="" /></p>
<p>Pronto, seu XYZ é a coordenada <strong>&lt;coordinates&gt;-51.2093204,-30.0451247,0&lt;/coordinates&gt;</strong> .</p>
<p>Agora você pode pular o segundo exemplo e ir direto ao passo 3, mas antes vamos verificar se o ponto está mesmo no local correto.</p>
<p>Acesso o seguinte link:</p>
<p><strong>http://maps.google.com.br/maps?f=qsource=s_qhl=pt-BRgeocode=q=</strong><span class="c1">(-30.0451247,-51.2093204)</span></p>
<p><strong><span class="c1">OBS: Lembre-se de alterar a ordem dos pontos XY &lt;-&gt; YX</span></strong></p>
<p>A segunda maneira de se obter as coordenadas XY é implementar um outro exemplo utilizando a API do Google Maps. Chamamos este exemplo de Geocode Reverso (através de um clique no mapa iremos obter as informações quanto a este local).</p>
<p>O exemplo abaixo está presente na página da API do Google Maps, mantive-o como o qual para explicar cada linha.</p>
<p><strong>Código</strong></p>
<div class="codigo">
<pre><code>&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"&gt;
&lt;html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml"&gt;
  &lt;head&gt;
    &lt;meta http-equiv="content-type" content="text/html; charset=UTF-8"/&gt;
    &lt;title&gt;Google Maps JavaScript API Example: 	Reverse Geocoder&lt;/title&gt;
    &lt;script src="http://maps.google.com/maps?file=apiv=2.xkey=ABQIAAAAzr2EBOXUKnm_jVnk0OJI7xSosDVG8KKPE1-m51RBrvYughuyMxQ-i1QfUnH94QxWIa6N4U6MouMmBA"
            type="text/javascript"&gt;&lt;/script&gt;
    &lt;script type="text/javascript"&gt;

    var map;
    var geocoder;
    var address;

    function initialize() {
      map = new GMap2(document.getElementById("map"));
      map.setCenter(new GLatLng(-30.0270583,-51.2303402), 10);
      map.addControl(new GLargeMapControl);
      GEvent.addListener(map, "click", getAddress);
      geocoder = new GClientGeocoder();
    }

    function getAddress(overlay, latlng) {
      if (latlng != null) {
        address = latlng;
        geocoder.getLocations(latlng, showAddress);
      }
    }

    function showAddress(response) {
      map.clearOverlays();
      if (!response  response.Status.code != 200) {
        alert("Status Code:"  response.Status.code);
      } else {
        place = response.Placemark[0];
        point = new GLatLng(place.Point.coordinates[1],
                            place.Point.coordinates[0]);
        marker = new GMarker(point);
        map.addOverlay(marker);
        marker.openInfoWindowHtml(
        '&lt;b&gt;orig latlng:&lt;/b&gt;'  response.name  '&lt;br/&gt;'
        '&lt;b&gt;latlng:&lt;/b&gt;'  place.Point.coordinates[1]  ","  place.Point.coordinates[0]  '&lt;br&gt;'
        '&lt;b&gt;Status Code:&lt;/b&gt;'  response.Status.code  '&lt;br&gt;'
        '&lt;b&gt;Status Request:&lt;/b&gt;'  response.Status.request  '&lt;br&gt;'
        '&lt;b&gt;Address:&lt;/b&gt;'  place.address  '&lt;br&gt;'
        '&lt;b&gt;Accuracy:&lt;/b&gt;'  place.AddressDetails.Accuracy  '&lt;br&gt;'
        '&lt;b&gt;Country code:&lt;/b&gt; '  place.AddressDetails.Country.CountryNameCode);
      }
    }
    &lt;/script&gt;
  &lt;/head&gt;

  &lt;body onload="initialize()"&gt;
    &lt;div id="map" style="width: 500px; height: 400px"&gt;&lt;/div&gt;
  &lt;/body&gt;
&lt;/html&gt;</code></pre>
</div>
<p><img src="http://conteudo.imasters.uol.com.br/12495/reverse_1.gif" alt="" /></p>
<p><img src="http://conteudo.imasters.uol.com.br/12495/reverse_2.gif" alt="" /></p>
<p>Você já viu um exemplo da resposta (response) em XML no exemplo anterior.</p>
<p><strong>Exemplo da resposta (response) em JSON:</strong></p>
<p><img src="http://conteudo.imasters.uol.com.br/12495/response_json.gif" alt="" /></p>
<p>Através dos arquivos acima, você consegue identificar quais as variáveis necessárias para obter os dados do geocode.</p>
<p>Por fim e não menos importante, o corpo do HTML:</p>
<div class="codigo">
<pre><code><span class="pun">&lt;</span><span class="tag">body</span><span class="pln"> </span><span class="atn">onload</span><span class="pun">=</span><span class="atv">"</span><span class="str">initialize()</span><span class="atv">"</span><span class="pun">&gt;</span><span class="pln">
    </span><span class="pun">&lt;</span><span class="tag">div</span><span class="pln"> </span><span class="atn">id</span><span class="pun">=</span><span class="atv">"map"</span><span class="pln"> </span><span class="atn">style</span><span class="pun">=</span><span class="atv">"</span><span class="str">width: 500px; height: 400px</span><span class="atv">"</span><span class="pun">&gt;&lt;/</span><span class="tag">div</span><span class="pun">&gt;</span><span class="pln">
        </span><span class="pun">&lt;</span><span class="tag">div</span><span class="pln"> </span><span class="atn">id</span><span class="pun">=</span><span class="atv">"temp"</span><span class="pun">&gt;&lt;/</span><span class="tag">div</span><span class="pun">&gt;</span><span class="pln">
  </span><span class="pun">&lt;/</span><span class="tag">body</span><span class="pun">&gt;</span></code></pre>
</div>
<p><span class="c1"><strong>Não se esqueça de utilizar o ONLOAD para chamar a função initialize() para tão logo carregar a página iniciar o procedimento da criação do mapa.</strong></span> Não quero ver ninguém comentando que o mapa não aparece!</p>
<p>Pronto, agora navegue no mapa, procure o endereço da sua empresa (ainda não criamos uma barra de pesquisa de endereço, nos próximos artigos irei explicar como), clique no local e copie as informações da linha <strong>latlng</strong>.</p>
<p>Agora temos o XY para continuar no nosso artigo.</p>
<h4>Passo 3: Adicionando minha empresa no mapa</h4>
<p>Bom, se você já criou o exemplo anterior do geocode reverso, este agora é muito mais simples. Caso contrário, vamos lá passo a passo.</p>
<p><strong>Vamos ao código</strong></p>
<div class="codigo">
<pre><code>&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"&gt;
&lt;html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml"&gt;
  &lt;head&gt;
    &lt;meta http-equiv="content-type" content="text/html; charset=utf-8"/&gt;
    &lt;title&gt;Google Maps JavaScript API Example: Simple Markers&lt;/title&gt;
    &lt;script src="http://maps.google.com/maps?file=apiamp;v=2amp;key=
	ABQIAAAAzr2EBOXUKnm_jVnk0OJI7xSosDVG8KKPE1-m51RBrvYughuyMxQ-i1QfUnH94QxWIa6N4U6MouMmBA"
            type="text/javascript"&gt;&lt;/script&gt;
    &lt;script type="text/javascript"&gt;
    function initialize() {
      if (GBrowserIsCompatible()) { // Verifica se o browser é compativel com a API do Google
	    // Instância a API do Google e a adiciona na DIV map.
        var map = new GMap2(document.getElementById("map"));
		// Centraliza o mapa no XY, zoom 16 em uma escala de [1..17] (Varia de acordo com a região)
        map.setCenter(new GLatLng(-30.0451247,-51.2093204), 16);
		// (OPCIONAL) Adiciona os controle de a esquerda do Mapa (Zoom , Zoom -, barra de Zoom, etc)
        map.addControl(new GLargeMapControl);
		// Padronizamos o XY de acordo com o latlng da API: (Y,X)
        var latlng = new GLatLng(-30.0451247,-51.2093204);
        map.addOverlay(new GMarker(latlng)); // Adiciona o marker no mapa
      }//if
    }//function
    &lt;/script&gt;
  &lt;/head&gt;
  &lt;body onload="initialize()" onunload="GUnload()"&gt;
    &lt;div id="map" style="width: 500px; height: 300px"&gt;&lt;/div&gt;
  &lt;/body&gt;
&lt;/html&gt;
</code></pre>
</div>
<p><img src="http://conteudo.imasters.uol.com.br/12495/mapa_codigo.gif" alt="" /></p>
<p><span class="c1"><strong>OBS: Não se esqueça de trocar a sua chave da API. Não se esqueça de declarar o ONLOAD, para que a função initialize(), no meu exemplo, crie o mapa assim que a página seja carregada. </strong></span></p>
<h4><strong>Resultado</strong></h4>
<p><img src="http://conteudo.imasters.uol.com.br/12495/mapa_local1.gif" alt="" /></p>
<p>Caso você queira incrementar o seu mapa e adicionar um evento de clique no marker, façamos algumas modificações no código:</p>
<p><img src="http://conteudo.imasters.uol.com.br/12495/mapa_codigo_alteracoes.gif" alt="" /></p>
<div class="codigo">
<pre><code>&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"&gt;
&lt;html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml"&gt;
  &lt;head&gt;
    &lt;meta http-equiv="content-type" content="text/html; charset=utf-8"/&gt;
    &lt;title&gt;Google Maps JavaScript API Example: Simple Markers&lt;/title&gt;
    &lt;script src="http://maps.google.com/maps?file=api&amp;v=2&amp;key=
	ABQIAAAAzr2EBOXUKnm_jVnk0OJI7xSosDVG8KKPE1-m51RBrvYughuyMxQ-i1QfUnH94QxWIa6N4U6MouMmBA"
            type="text/javascript"&gt;&lt;/script&gt;
    &lt;script type="text/javascript"&gt;
    function initialize() {
      if (GBrowserIsCompatible()) { // Verifica se o browser é compativel com a API do Google
	    // Instância a API do Google e a adiciona na DIV map.
        var map = new GMap2(document.getElementById("map"));
		// Centraliza o mapa no XY, zoom 16 em uma escala de [1..17] (Varia de acordo com a região)
        map.setCenter(new GLatLng(-30.0451247,-51.2093204), 16);
		// (OPCIONAL) Adiciona os controle de a esquerda do Mapa (Zoom +, Zoom -, barra de Zoom, etc)
        map.addControl(new GLargeMapControl);
		// Padronizamos o XY de acordo com o latlng da API: (Y,X)
        var latlng = new GLatLng(-30.0451247,-51.2093204);
		var marker = new GMarker(latlng); // Criamos um marker referenciado a uma variável
		// Criamos um evento para ao se clicar no marker
		GEvent.addListener(marker, "click", function() {
			// Abrir um InfoWindow com o seguinte texto
           marker.openInfoWindowHtml("Endereço da minha empresa! &lt;br/&gt; &lt;strong&gt;;)&lt;/strong&gt;");
          });
        map.addOverlay(marker); // Adiciona o marker no mapa
      }//if
    }//function
    &lt;/script&gt;
  &lt;/head&gt;
  &lt;body onload="initialize()" onunload="GUnload()"&gt;
    &lt;div id="map" style="width: 500px; height: 300px"&gt;&lt;/div&gt;
  &lt;/body&gt;
&lt;/html&gt;
</code></pre>
</div>
<p><img src="http://conteudo.imasters.uol.com.br/12495/mapa_resultado_final.gif" alt="" /></p>
<p>Pronto!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.debugando.com/colocando-minha-empresa-no-mapa/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>jQuery e ASP para cadastrar dados</title>
		<link>http://www.debugando.com/jquery-e-asp-para-cadastrar-dados/</link>
		<comments>http://www.debugando.com/jquery-e-asp-para-cadastrar-dados/#comments</comments>
		<pubDate>Tue, 14 Apr 2009 22:04:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ASP]]></category>
		<category><![CDATA[JavaScript/Ajax]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[Ajax]]></category>
		<category><![CDATA[JQuery]]></category>

		<guid isPermaLink="false">http://www.debugando.com/?p=554</guid>
		<description><![CDATA[Usar o jQuery é uma forma mais fácil de criar funcionalidades extras em seus sistemas, de animações básicas a grandes galerias de fotos, mas vamos para o nosso foco que é inserir no banco.
Criei um arquivo chamado funcao_jquery.js para colocar a função de efeito do jQuery. Para nossa aplicação usei o efeito fadeIn().
O Fade in [...]]]></description>
			<content:encoded><![CDATA[<p>Usar o jQuery é uma forma mais fácil de criar funcionalidades extras em seus sistemas, de animações básicas a grandes galerias de fotos, mas vamos para o nosso foco que é inserir no banco.</p>
<p>Criei um arquivo chamado funcao_jquery.js para colocar a função de efeito do jQuery. Para nossa aplicação usei o efeito fadeIn().</p>
<p>O <strong>Fade in</strong> (a função fadeIn()) serve para dar opacidade, e pode ser ajustado para ter animação. Existem três strings de velocidade predefinidas (&#8220;slow&#8221;, &#8220;def&#8221;, e &#8220;fast&#8221;), usei a slow em nossa aplicação;</p>
<p><em><kbd>fadeIn("slow");</kbd></em></p>
<p>Criei dois campos de exemplo (Nome e E-Mail) e um botão &#8220;<strong>submit</strong>&#8220;. Podem ser criados quantos necessários:</p>
<div class="codigo">
<pre><em><code><span class="pun">&lt;</span><span class="tag">form</span><span class="pln"> </span><span class="atn">action</span><span class="pun">=</span><span class="atv">"Cadastro_JQuery.asp?Cadastrar=Ok"</span><span class="pln"> </span><span class="atn">method</span><span class="pun">=</span><span class="atv">"post"</span><span class="pun">&gt;</span><span class="pln">
    Nome: </span><span class="pun">&lt;</span><span class="tag">input</span><span class="pln"> </span><span class="atn">name</span><span class="pun">=</span><span class="atv">"Nome"</span><span class="pln"> </span><span class="atn">type</span><span class="pun">=</span><span class="atv">"text"</span><span class="pln"> </span><span class="atn">id</span><span class="pun">=</span><span class="atv">"Nome"</span><span class="pln"> </span><span class="pun">/&gt;</span><span class="pln">
    </span><span class="pun">&lt;</span><span class="tag">br</span><span class="pun">&gt;</span><span class="pln">
    E-Mail: </span><span class="pun">&lt;</span><span class="tag">input</span><span class="pln"> </span><span class="atn">name</span><span class="pun">=</span><span class="atv">"EMail"</span><span class="pln"> </span><span class="atn">type</span><span class="pun">=</span><span class="atv">"text"</span><span class="pln"> </span><span class="atn">id</span><span class="pun">=</span><span class="atv">"EMail"</span><span class="pln"> </span><span class="pun">/&gt;</span><span class="pln">
    </span><span class="pun">&lt;</span><span class="tag">input</span><span class="pln"> </span><span class="atn">name</span><span class="pun">=</span><span class="atv">"btAdd"</span><span class="pln"> </span><span class="atn">type</span><span class="pun">=</span><span class="atv">"submit"</span><span class="pln"> </span><span class="atn">value</span><span class="pun">=</span><span class="atv">"Adicionar"</span><span class="pln"> </span><span class="atn">id</span><span class="pun">=</span><span class="atv">"btn_enviar"</span><span class="pln"> </span><span class="pun">/&gt;</span><span class="pln">
</span><span class="pun">&lt;/</span><span class="tag">form</span><span class="pun">&gt;</span></code></em></pre>
</div>
<p>No <strong>action </strong>do formulário coloquei uma <strong>Query &#8220;Cadastrar&#8221;</strong> com valor ok para ativar a ação do ASP (usando JScript) que segue abaixo:</p>
<div class="codigo">
<pre><code><span class="pln">
</span><em><span class="pun">&lt;%</span><span class="pln">
</span><span class="com">// Função para cadastrar no banco</span><span class="pln">
</span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="typ">Request</span><span class="pun">.</span><span class="typ">QueryString</span><span class="pun">(</span><span class="str">"Cadastrar"</span><span class="pun">)</span><span class="pln"> </span><span class="pun">==</span><span class="pln"> </span><span class="str">"Ok"</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">

    </span><span class="kwd">var</span><span class="pln"> nome </span><span class="pun">=</span><span class="pln"> </span><span class="typ">Request</span><span class="pun">.</span><span class="typ">Form</span><span class="pun">(</span><span class="str">"Nome"</span><span class="pun">);</span><span class="pln">
    </span><span class="kwd">var</span><span class="pln"> email </span><span class="pun">=</span><span class="pln"> </span><span class="typ">Request</span><span class="pun">.</span><span class="typ">Form</span><span class="pun">(</span><span class="str">"EMail"</span><span class="pun">);</span><span class="pln">

    </span><span class="typ">Conexao</span><span class="pun">.</span><span class="typ">Execute</span><span class="pun">(</span><span class="str">"Insert Into Newsletter (Nome, EMail)
                     Values ('"</span><span class="pun">+</span><span class="pln">nome</span><span class="pun">+</span><span class="str">"', '"</span><span class="pun">+</span><span class="pln">email</span><span class="pun">+</span><span class="str">"')"</span><span class="pun">);</span><span class="pln">
    </span><span class="typ">Response</span><span class="pun">.</span><span class="typ">Write</span><span class="pun">(</span><span class="str">""</span><span class="pun">);</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
%&gt;</span></em></code></pre>
</div>
<p>Usando listas (UL&gt;LI) eu pego as informações do banco e organizo tudo para ser mostrado ao usuário:</p>
<div class="codigo">
<pre><em><code><span class="pun">&lt;%</span><span class="pln">
</span><span class="kwd">var</span><span class="pln"> rs </span><span class="pun">=</span><span class="pln"> </span><span class="typ">Conexao</span><span class="pun">.</span><span class="typ">Execute</span><span class="pun">(</span><span class="str">"Select * From Teste"</span><span class="pun">);</span><span class="pln"> </span><span class="com">// SQL para listar os dados</span><span class="pln">
</span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="pln">rs </span><span class="pun">==</span><span class="pln"> </span><span class="kwd">null</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
    </span><span class="typ">Response</span><span class="pun">.</span><span class="typ">Write</span><span class="pun">(</span><span class="str">"NADA ENCONTRADO"</span><span class="pun">);</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="kwd">else</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
    </span><span class="kwd">while</span><span class="pln"> </span><span class="pun">(!</span><span class="pln">rs</span><span class="pun">.</span><span class="pln">EOF</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
        </span><span class="typ">Response</span><span class="pun">.</span><span class="typ">Write</span><span class="pun">(</span><span class="str">"&lt;li&gt;"</span><span class="pun">+</span><span class="pln">rs</span><span class="pun">(</span><span class="str">"Nome"</span><span class="pun">)+</span><span class="str">" : "</span><span class="pun">+</span><span class="pln">rs</span><span class="pun">(</span><span class="str">"EMail"</span><span class="pun">)+</span><span class="str">"&lt;/li&gt;"</span><span class="pun">)</span><span class="pln"> </span><span class="com">
        // Lista todos os cadastrados do banco</span><span class="pln">
    rs</span><span class="pun">.</span><span class="typ">MoveNext</span><span class="pun">();</span><span class="pln">
    </span><span class="pun">}</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
%&gt;</span></code></em></pre>
</div>
<p>No ASP, com JScript para verificar se existe algo no banco, eu pego o <strong>RecordSet</strong> e comparo ele com <strong>&#8220;null&#8221;</strong> e o <strong>&#8220;else&#8221;</strong> caso encontre;</p>
<p><em><kbd>if (rs == null) {</kbd></em></p>
<p><em><em>&#8230; continua o resto do código&#8230;</em></em></p>
<p>A mesma idéia temos para o &#8220;loop&#8221;, só que uso o <em>End Of File</em> (.EOF)</p>
<p><em><kbd>while (!rs.EOF) {</kbd></em></p>
<p><em> &#8230; continua o resto do código &#8230; </em></p>
<p>Em seqüência imprimo na tela o que foi encontrado.</p>
<p>O jQuery vai agir da seguinte maneira:</p>
<p><em>No botão de tipo <strong>&#8220;submit&#8221;</strong> coloquei uma <strong>ID </strong>de nome <strong>&#8220;btn_enviar&#8221;</strong>, quando o botão for clicado será enviado os parâmetros via POST para o jQuery.</em></p>
<div class="codigo">
<pre><em><code><span class="pln">$</span><span class="pun">(</span><span class="str">'#btn_enviar'</span><span class="pun">).</span><span class="pln">click</span><span class="pun">(</span><span class="kwd">function</span><span class="pun">(){</span><span class="pln">

    </span><span class="kwd">var</span><span class="pln"> nome_post </span><span class="pun">=</span><span class="pln"> $</span><span class="pun">(</span><span class="str">'#Nome'</span><span class="pun">).</span><span class="pln">val</span><span class="pun">();</span><span class="pln">
    </span><span class="kwd">var</span><span class="pln"> email_post </span><span class="pun">=</span><span class="pln"> $</span><span class="pun">(</span><span class="str">'#EMail'</span><span class="pun">).</span><span class="pln">val</span><span class="pun">();</span><span class="pln">

$</span><span class="pun">.</span><span class="pln">post</span><span class="pun">(</span><span class="str">"Cadastro_JQuery.asp?Cadastrar=Ok"</span><span class="pun">,{</span><span class="pln">nome</span><span class="pun">:</span><span class="pln"> nome_post</span><span class="pun">,</span><span class="pln"> email</span><span class="pun">:</span><span class="pln"> email_post</span><span class="pun">}</span></code></em></pre>
</div>
<p>Logo em seguida jogo dentro da lista (UL&gt;LI).</p>
<div class="codigo">
<pre><em><code><span class="pln">$</span><span class="pun">(</span><span class="str">"ul li:last"</span><span class="pun">).</span><span class="pln">after</span><span class="pun">(</span><span class="str">"&lt;li&gt;"</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> nome_post </span><span class="pun">+</span><span class="pln"> </span><span class="str">" : "</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> email_post </span><span class="pun">+</span><span class="pln"> </span><span class="str">"&lt;/li&gt;"</span><span class="pun">).</span><span class="kwd">next</span><span class="pun">().</span><span class="pln">fadeIn</span><span class="pun">(</span><span class="str">"slow"</span><span class="pun">);</span><span class="pln">
</span><span class="pun">});</span></code></em></pre>
</div>
<p>E finalizo limpando os campos. Veja na imagem abaixo:</p>
<p><img src="http://conteudo.imasters.uol.com.br/11377/2008_11_19_usando-jquery-cadastro_02.gif" alt="" /></p>
<p>Segue o link da página com o código completo e o arquivo jQuery!</p>
<p><em><a class="ext" href="http://conteudo.imasters.uol.com.br/11377/jquery_asp_jscript.asp">Código completo</a></em></p>
<p><em><a class="ext" href="http://conteudo.imasters.uol.com.br/11377/jquery.js">Arquivo jQuery</a></em></p>
<p><em>Fonte: <a onclick="javascript:urchinTracker ('/outbound/article/www.pplware.com');" href="http://imasters.uol.com.br/artigo/11377/asp/jquery_e_asp_para_cadastrar_dados/" target="_blank">Imasters</a></em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.debugando.com/jquery-e-asp-para-cadastrar-dados/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Upper-box &#8211; Componente para jQuery</title>
		<link>http://www.debugando.com/upper-box-componente-para-jquery-2/</link>
		<comments>http://www.debugando.com/upper-box-componente-para-jquery-2/#comments</comments>
		<pubDate>Tue, 14 Apr 2009 22:00:15 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[JavaScript/Ajax]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[Ajax]]></category>
		<category><![CDATA[JQuery]]></category>

		<guid isPermaLink="false">http://www.debugando.com/?p=551</guid>
		<description><![CDATA[Para nós, desenvolvedores, existem scripts, códigos, métodos, estruturas que carregamos conosco ano após ano. Utilizamos essas soluções empacotadas em determinados momentos, muitas vezes salvando nossas horas de descanso.
Há muito tempo, em um sistema web em que o foco era a visualização de documentos, o cliente solicitou que o menu fosse retrátil. Ou seja, o menu [...]]]></description>
			<content:encoded><![CDATA[<p>Para nós, desenvolvedores, existem scripts, códigos, métodos, estruturas que carregamos conosco ano após ano. Utilizamos essas soluções empacotadas em determinados momentos, muitas vezes salvando nossas horas de descanso.</p>
<p>Há muito tempo, em um sistema web em que o foco era a visualização de documentos, o cliente solicitou que o menu fosse retrátil. Ou seja, o menu superior da aplicação tinha que desaparecer se não estivesse sendo utilizado e aparecer quando o cursor do mouse se aproximasse dele. Para suprir isso criei uma função Javascript (utilizando CSS), e ficou bem bacana, simples e bastante útil. Esse script eu carrego comigo desde lá.</p>
<p>Precisei disso novamente alguns dias atrás, mas dessa vez fiz diferente. Tornei o script genérico, de modo que posso utilizar mais facilmente em qualquer aplicação web que tenha <a class="ext" href="http://jquery.com/">jQuery</a>, e ainda coloquei em um <a class="ext" href="http://github.com/wagnerandrade/upper-box/tree/master">repositório no Github</a> (repositório <a class="ext" href="http://en.wikipedia.org/wiki/Git_%28software%29">GIT</a>).</p>
<p>Sei que ainda é bastante primitivo e <strong>não está nos padrões de plugin jQuery. Mas essa é uma das intenções de colocar em um repositório público</strong>. Quem quiser usar e acoplar funcionalidades, otimizações e mesmo dar opiniões será muito bem-vindo. Pra quem não quer nem tocar no repositório, segue o link pra <a class="ext" href="http://github.com/wagnerandrade/upper-box/zipball/master">download </a> (versão mais recente). Veja um exemplo do seu funcionamento <a class="ext" href="http://www.wagnerandrade.com/upper-box/example.html">aqui</a>.</p>
<p>Pra explicar o que, como, onde, vou transcrever o README do repositório no Github abaixo.</p>
<h4>upper-box</h4>
<p>API javascript que transforma qualquer elemento de seu HTML (uma div, por exemplo) em uma caixa móvel posicionada na parte de cima da tela.</p>
<p>Para utilizá-lo é necessário estar com o jQuery adicionado ao documento.</p>
<h4>O que acontece?</h4>
<p>O elemento upper-box vai virar uma caixa invisível na parte de cima da tela.</p>
<p>Quando o usuário se aproxima com o mouse da parte superior da tela (body), o elemento ira rolar, abrindo e exibindo seu conteúdo.</p>
<h4>Como usar?</h4>
<p>Primeiro inclua os arquivos jQuery e upper-box no seu html, desta forma:</p>
<div class="codigo">
<pre><code><span class="pun">&lt;</span><span class="tag">script</span><span class="pln"> </span><span class="atn">type</span><span class="pun">=</span><span class="atv">"text/javascript"</span><span class="pln"> </span><span class="atn">src</span><span class="pun">=</span><span class="atv">"jquery.js"</span><span class="pun">&gt;&lt;</span><span class="str">/script&gt;
&lt;script type="text/</span><span class="pln">javascript</span><span class="str">" src="</span><span class="pln">upper</span><span class="pun">-</span><span class="pln">box</span><span class="pun">.</span><span class="pln">js</span><span class="str">"&gt;</span><span class="pun">&lt;/</span><span class="tag">script</span><span class="pun">&gt;</span></code></pre>
</div>
<p>Seu uso é bem simples, basta adicionar upper-box ao class do elemento que vai virar upper-box.</p>
<p>Exemplo:</p>
<div class="codigo">
<pre><code><span class="pun">&lt;</span><span class="tag">div</span><span class="pln"> </span><span class="atn">id</span><span class="pun">=</span><span class="atv">'div1'</span><span class="pln"> </span><span class="atn">class</span><span class="pun">=</span><span class="atv">'divClass'</span><span class="pun">&gt;</span><span class="pln">
 </span><span class="pun">&lt;</span><span class="tag">h2</span><span class="pun">&gt;</span><span class="pln">Olá,</span><span class="pun">&lt;/</span><span class="tag">h2</span><span class="pun">&gt;</span><span class="pln">
 </span><span class="pun">&lt;</span><span class="tag">p</span><span class="pun">&gt;</span><span class="pln">Esta div não é um </span><span class="pun">&lt;</span><span class="tag">b</span><span class="pun">&gt;</span><span class="pln">upper-box</span><span class="pun">&lt;/</span><span class="tag">b</span><span class="pun">&gt;</span><span class="pln">!</span><span class="pun">&lt;/</span><span class="tag">p</span><span class="pun">&gt;</span><span class="pln">
</span><span class="pun">&lt;/</span><span class="tag">div</span><span class="pun">&gt;</span></code></pre>
</div>
<div class="codigo">
<pre><code><span class="pun">&lt;</span><span class="tag">div</span><span class="pln"> </span><span class="atn">id</span><span class="pun">=</span><span class="atv">'div2'</span><span class="pln"> </span><span class="atn">class</span><span class="pun">=</span><span class="atv">'divClass upper-box'</span><span class="pun">&gt;</span><span class="pln">
 </span><span class="pun">&lt;</span><span class="tag">p</span><span class="pun">&gt;</span><span class="pln">Esta div será um </span><span class="pun">&lt;</span><span class="tag">b</span><span class="pun">&gt;</span><span class="pln">upper-box</span><span class="pun">&lt;/</span><span class="tag">b</span><span class="pun">&gt;</span><span class="pln">!</span><span class="pun">&lt;/</span><span class="tag">p</span><span class="pun">&gt;</span><span class="pln">
 </span><span class="pun">&lt;</span><span class="tag">p</span><span class="pun">&gt;</span><span class="pln">Simples, não?!</span><span class="pun">&lt;/</span><span class="tag">p</span><span class="pun">&gt;</span><span class="pln">
</span><span class="pun">&lt;/</span><span class="tag">div</span><span class="pun">&gt;</span></code></pre>
</div>
<p>Espero não só ter ajudado como também ter instigado a colaboração de código. Sintam-se à vontade para realizar melhorias no simples &#8211; por enquanto &#8211; upper-box.</p>
<p><em>Fonte: <a onclick="javascript:urchinTracker ('/outbound/article/www.pplware.com');" href="http://imasters.uol.com.br/artigo/11557/javascript/upper-box_-_componente_para_jquery/" target="_blank">Imasters</a></em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.debugando.com/upper-box-componente-para-jquery-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Validação de formulários com jQuery</title>
		<link>http://www.debugando.com/validacao-de-formularios-com-jquery/</link>
		<comments>http://www.debugando.com/validacao-de-formularios-com-jquery/#comments</comments>
		<pubDate>Tue, 14 Apr 2009 21:45:58 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[JavaScript/Ajax]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[Ajax]]></category>
		<category><![CDATA[JQuery]]></category>

		<guid isPermaLink="false">http://www.debugando.com/?p=543</guid>
		<description><![CDATA[Vamos verificar, por exemplo, se todos os campos foram preenchidos ou não.. ou se os seus valores estão ok.
Veja um exemplo do que será aprendido nessa aula.
Usarei como exemplo um formulário de contato que é o mais comum por aí. Vamos ao passo-a-passo:
Faça o download da última versão do jQuery no site: http://jquery.com/
Faça o download [...]]]></description>
			<content:encoded><![CDATA[<p>Vamos verificar, por exemplo, se todos os campos foram preenchidos ou não.. ou se os seus valores estão ok.</p>
<p>Veja um <a class="ext" href="http://thiagobelem.net/blog/exemplo2/">exemplo</a> do que será aprendido nessa aula.</p>
<p>Usarei como exemplo um formulário de contato que é o mais comum por aí. Vamos ao passo-a-passo:</p>
<p>Faça o download da última versão do jQuery no site: <a class="ext" href="http://jquery.com/">http://jquery.com/</a></p>
<p>Faça o download do plugin Validation no site: <a class="ext" href="http://bassistance.de/jquery-plugins/jquery-plugin-validation/">http://bassistance.de/jquery-plugins/jquery-plugin-validation/</a></p>
<p>Insira-os dentro do &lt;head&gt; do seu site, da seguinte forma:</p>
<div class="codigo">
<pre><em><code><span class="lit">1.</span><span class="pun">&lt;</span><span class="pln">script language</span><span class="pun">=</span><span class="str">"JavaScript"</span><span class="pln"> src</span><span class="pun">=</span><span class="str">"jquery.js"</span><span class="pln"> type</span><span class="pun">=</span><span class="str">"text/javascript"</span><span class="pun">&gt;&lt;</span><span class="str">/script&gt;
2.&lt;script language="JavaScript" src="jquery.validate.js" type="text/</span><span class="pln">javascript</span><span class="str">"&gt;&lt;/script&gt;</span></code></em></pre>
</div>
<p>Após isso, criamos um pequeno bloco de CSS para estilizar as mensagens de erro:</p>
<div class="codigo">
<pre><em><code><span class="lit">1.</span><span class="pun">*</span><span class="pln"> </span><span class="pun">{</span><span class="pln"> font</span><span class="pun">-</span><span class="pln">family</span><span class="pun">:</span><span class="pln"> </span><span class="typ">Verdana</span><span class="pun">;</span><span class="pln"> font</span><span class="pun">-</span><span class="pln">size</span><span class="pun">:</span><span class="pln"> </span><span class="lit">96</span><span class="pun">%;</span><span class="pln"> </span><span class="pun">}</span><span class="pln">
</span><span class="lit">2.label</span><span class="pln"> </span><span class="pun">{</span><span class="pln"> display</span><span class="pun">:</span><span class="pln"> block</span><span class="pun">;</span><span class="pln"> margin</span><span class="pun">-</span><span class="pln">top</span><span class="pun">:</span><span class="pln"> </span><span class="lit">10px</span><span class="pun">;</span><span class="pln"> </span><span class="pun">}</span><span class="pln">
</span><span class="lit">3.label</span><span class="pun">.</span><span class="pln">error </span><span class="pun">{</span><span class="pln"> </span><span class="kwd">float</span><span class="pun">:</span><span class="pln"> none</span><span class="pun">;</span><span class="pln"> color</span><span class="pun">:</span><span class="pln"> red</span><span class="pun">;</span><span class="pln"> margin</span><span class="pun">:</span><span class="pln"> </span><span class="lit">0</span><span class="pln"> </span><span class="lit">.5em</span><span class="pln"> </span><span class="lit">0</span><span class="pln"> </span><span class="lit">0</span><span class="pun">;</span><span class="pln"> vertical</span><span class="pun">-</span><span class="pln">align</span><span class="pun">:</span><span class="pln"> top</span><span class="pun">;</span><span class="pln"> font</span><span class="pun">-</span><span class="pln">size</span><span class="pun">:</span><span class="pln"> </span><span class="lit">10px</span><span class="pln"> </span><span class="pun">}</span><span class="pln">
</span><span class="lit">4.p</span><span class="pln"> </span><span class="pun">{</span><span class="pln"> clear</span><span class="pun">:</span><span class="pln"> both</span><span class="pun">;</span><span class="pln"> </span><span class="pun">}</span><span class="pln">
</span><span class="lit">5.</span><span class="pun">.</span><span class="pln">submit </span><span class="pun">{</span><span class="pln"> margin</span><span class="pun">-</span><span class="pln">top</span><span class="pun">:</span><span class="pln"> </span><span class="lit">1em</span><span class="pun">;</span><span class="pln"> </span><span class="pun">}</span><span class="pln">
</span><span class="lit">6.em</span><span class="pln"> </span><span class="pun">{</span><span class="pln"> font</span><span class="pun">-</span><span class="pln">weight</span><span class="pun">:</span><span class="pln"> bold</span><span class="pun">;</span><span class="pln"> padding</span><span class="pun">-</span><span class="pln">right</span><span class="pun">:</span><span class="pln"> </span><span class="lit">1em</span><span class="pun">;</span><span class="pln"> vertical</span><span class="pun">-</span><span class="pln">align</span><span class="pun">:</span><span class="pln"> top</span><span class="pun">;</span><span class="pln"> </span><span class="pun">}</span></code></em></pre>
</div>
<p>Ainda dentro do head, depois de inserir o jQuery e o estilo das mensagens de erro, precisaremos adicionar um bloco de JavaScript contendo instruções para a validação:</p>
<div class="codigo">
<pre><em><code><span class="lit">01.</span><span class="pln">$</span><span class="pun">(</span><span class="pln">document</span><span class="pun">).</span><span class="pln">ready</span><span class="pun">(</span><span class="pln"> </span><span class="kwd">function</span><span class="pun">()</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
</span><span class="lit">02.</span><span class="pln">$</span><span class="pun">(</span><span class="str">"#formularioContato"</span><span class="pun">).</span><span class="pln">validate</span><span class="pun">({</span><span class="pln">
</span><span class="lit">03.</span><span class="com">// Define as regras</span><span class="pln">
</span><span class="lit">04.rules</span><span class="pun">:{</span><span class="pln">
</span><span class="lit">05.campoNome</span><span class="pun">:{</span><span class="pln">
</span><span class="lit">06.</span><span class="com">// campoNome será obrigatório (required) e terá tamanho mínimo (minLength)</span><span class="pln">
</span><span class="lit">07.required</span><span class="pun">:</span><span class="pln"> </span><span class="kwd">true</span><span class="pun">,</span><span class="pln"> minlength</span><span class="pun">:</span><span class="pln"> </span><span class="lit">2</span><span class="pln">
</span><span class="lit">08.</span><span class="pun">},</span><span class="pln">
</span><span class="lit">09.campoEmail</span><span class="pun">:{</span><span class="pln">
</span><span class="lit">10.</span><span class="com">// campoEmail será obrigatório (required) e precisará ser um e-mail válido (email)</span><span class="pln">
</span><span class="lit">11.required</span><span class="pun">:</span><span class="pln"> </span><span class="kwd">true</span><span class="pun">,</span><span class="pln"> email</span><span class="pun">:</span><span class="pln"> </span><span class="kwd">true</span><span class="pln">
</span><span class="lit">12.</span><span class="pun">},</span><span class="pln">
</span><span class="lit">13.campoMensagem</span><span class="pun">:{</span><span class="pln">
</span><span class="lit">14.</span><span class="com">// campoMensagem será obrigatório (required) e terá tamanho mínimo (minLength)</span><span class="pln">
</span><span class="lit">15.required</span><span class="pun">:</span><span class="pln"> </span><span class="kwd">true</span><span class="pun">,</span><span class="pln"> minlength</span><span class="pun">:</span><span class="pln"> </span><span class="lit">2</span><span class="pln">
</span><span class="lit">16.</span><span class="pun">}</span><span class="pln">
</span><span class="lit">17.</span><span class="pun">},</span><span class="pln">
</span><span class="lit">18.</span><span class="com">// Define as mensagens de erro para cada regra</span><span class="pln">
</span><span class="lit">19.messages</span><span class="pun">:{</span><span class="pln">
</span><span class="lit">20.campoNome</span><span class="pun">:{</span><span class="pln">
</span><span class="lit">21.required</span><span class="pun">:</span><span class="pln"> </span><span class="str">"Digite o seu nome"</span><span class="pun">,</span><span class="pln">
</span><span class="lit">22.minLength</span><span class="pun">:</span><span class="pln"> </span><span class="str">"O seu nome deve conter, no mínimo, 2 caracteres"</span><span class="pln">
</span><span class="lit">23.</span><span class="pun">},</span><span class="pln">
</span><span class="lit">24.campoEmail</span><span class="pun">:{</span><span class="pln">
</span><span class="lit">25.required</span><span class="pun">:</span><span class="pln"> </span><span class="str">"Digite o seu e-mail para contato"</span><span class="pun">,</span><span class="pln">
</span><span class="lit">26.email</span><span class="pun">:</span><span class="pln"> </span><span class="str">"Digite um e-mail válido"</span><span class="pln">
</span><span class="lit">27.</span><span class="pun">},</span><span class="pln">
</span><span class="lit">28.campoMensagem</span><span class="pun">:{</span><span class="pln">
</span><span class="lit">29.required</span><span class="pun">:</span><span class="pln"> </span><span class="str">"Digite a sua mensagem"</span><span class="pun">,</span><span class="pln">
</span><span class="lit">30.minLength</span><span class="pun">:</span><span class="pln"> </span><span class="str">"A sua mensagem deve conter, no mínimo, 2 caracteres"</span><span class="pln">
</span><span class="lit">31.</span><span class="pun">}</span><span class="pln">
</span><span class="lit">32.</span><span class="pun">}</span><span class="pln">
</span><span class="lit">33.</span><span class="pun">});</span><span class="pln">
</span><span class="lit">34.</span><span class="pun">});</span></code></em></pre>
</div>
<p>Por fim, inserimos o HTML do formulário na página:</p>
<div class="codigo">
<pre><em><code><span class="lit">01.</span><span class="pun">&lt;</span><span class="pln">form id</span><span class="pun">=</span><span class="str">"formularioContato"</span><span class="pln"> method</span><span class="pun">=</span><span class="str">"post"</span><span class="pln"> action</span><span class="pun">=</span><span class="str">""</span><span class="pun">&gt;</span><span class="pln">
</span><span class="lit">02.</span><span class="pun">&lt;</span><span class="pln">label</span><span class="pun">&gt;</span><span class="typ">Nome</span><span class="pun">&lt;</span><span class="str">/label&gt;
03.&lt;input name="campoNome" type="text" value="" /</span><span class="pun">&gt;</span><span class="pln">
</span><span class="lit">04.</span><span class="pln">
</span><span class="lit">05.</span><span class="pun">&lt;</span><span class="pln">label</span><span class="pun">&gt;</span><span class="pln">E</span><span class="pun">-</span><span class="pln">mail</span><span class="pun">&lt;</span><span class="str">/label&gt;
06.&lt;input name="campoEmail" type="text" value="" /</span><span class="pun">&gt;</span><span class="pln">
</span><span class="lit">07.</span><span class="pln">
</span><span class="lit">08.</span><span class="pun">&lt;</span><span class="pln">label</span><span class="pun">&gt;</span><span class="typ">Mensagem</span><span class="pun">&lt;</span><span class="str">/label&gt;
09.&lt;textarea name="campoMensagem"&gt;&lt;/</span><span class="pln">textarea</span><span class="pun">&gt;&lt;</span><span class="pln">br </span><span class="pun">/&gt;</span><span class="pln">
</span><span class="lit">10.</span><span class="pln">
</span><span class="lit">11.</span><span class="pun">&lt;</span><span class="pln">input type</span><span class="pun">=</span><span class="str">"submit"</span><span class="pln"> </span><span class="kwd">class</span><span class="pun">=</span><span class="str">"submit"</span><span class="pln"> value</span><span class="pun">=</span><span class="str">"Enviar"</span><span class="pln"> </span><span class="pun">/&gt;</span><span class="pln">
</span><span class="lit">12.</span><span class="pun">&lt;</span><span class="str">/form&gt;</span></code></em></pre>
</div>
<p>Viram como é fácil? O arquivo final ficou dessa forma. Se você preferir pode copiar todo esse código JavaScript para um arquivo .js e incluí-lo no &lt;head&gt; do seu site da mesma forma que fizemos no começo da aula.</p>
<p>Coloquei alguns comentários na parte das instruções de validação para facilitar o entendimento.</p>
<p>Com isso você faz uma validação client-side que ajuda a evitar dados inválidos e campos vazios. Mas preciso lembrar que, por ser client-side, essa validação acontece apenas no computador do visitante e o mesmo pode desativar o JavaScript e a validação toda não irá funcionar. Então não se esqueça de fazer a mesma validação dentro do PHP quando receber os dados.</p>
<p>Veja o <a class="ext" href="http://thiagobelem.net/blog/exemplo2/">exemplo</a> desta aula funcionando.</p>
<p>Mais exemplos de validações diferentes podem ser encontrados no site do plugin: <a class="ext" href="http://jquery.bassistance.de/validate/demo/">http://jquery.bassistance.de/validate/demo/</a></p>
<p><em>Fonte: <a onclick="javascript:urchinTracker ('/outbound/article/www.pplware.com');" href="http://imasters.uol.com.br/artigo/12384/jquery/validacao_de_formularios_com_jquery/" target="_blank">Imasters</a></em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.debugando.com/validacao-de-formularios-com-jquery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Upper-box &#8211; Componente para jQuery</title>
		<link>http://www.debugando.com/upper-box-componente-para-jquery/</link>
		<comments>http://www.debugando.com/upper-box-componente-para-jquery/#comments</comments>
		<pubDate>Thu, 19 Feb 2009 00:50:46 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[JavaScript/Ajax]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[Ajax]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.debugando.com/?p=513</guid>
		<description><![CDATA[Para nós, desenvolvedores, existem scripts, códigos, métodos, estruturas que carregamos conosco ano após ano. Utilizamos essas soluções empacotadas em determinados momentos, muitas vezes salvando nossas horas de descanso.
Há muito tempo, em um sistema web em que o foco era a visualização de documentos, o cliente solicitou que o menu fosse retrátil. Ou seja, o menu [...]]]></description>
			<content:encoded><![CDATA[<p>Para nós, desenvolvedores, existem scripts, códigos, métodos, estruturas que carregamos conosco ano após ano. Utilizamos essas soluções empacotadas em determinados momentos, muitas vezes salvando nossas horas de descanso.</p>
<p>Há muito tempo, em um sistema web em que o foco era a visualização de documentos, o cliente solicitou que o menu fosse retrátil. Ou seja, o menu superior da aplicação tinha que desaparecer se não estivesse sendo utilizado e aparecer quando o cursor do mouse se aproximasse dele. Para suprir isso criei uma função Javascript (utilizando CSS), e ficou bem bacana, simples e bastante útil. Esse script eu carrego comigo desde lá.</p>
<p>Precisei disso novamente alguns dias atrás, mas dessa vez fiz diferente. Tornei o script genérico, de modo que posso utilizar mais facilmente em qualquer aplicação web que tenha <a class="ext" href="http://jquery.com/">jQuery</a>, e ainda coloquei em um <a class="ext" href="http://github.com/wagnerandrade/upper-box/tree/master">repositório no Github</a> (repositório <a class="ext" href="http://en.wikipedia.org/wiki/Git_%28software%29">GIT</a>).</p>
<p>Sei que ainda é bastante primitivo e <strong>não está nos padrões de plugin jQuery. Mas essa é uma das intenções de colocar em um repositório público</strong>. Quem quiser usar e acoplar funcionalidades, otimizações e mesmo dar opiniões será muito bem-vindo. Pra quem não quer nem tocar no repositório, segue o link pra <a class="ext" href="http://github.com/wagnerandrade/upper-box/zipball/master">download </a> (versão mais recente). Veja um exemplo do seu funcionamento <a class="ext" href="http://www.wagnerandrade.com/upper-box/example.html">aqui</a>.</p>
<p>Pra explicar o que, como, onde, vou transcrever o README do repositório no Github abaixo.</p>
<h4>upper-box</h4>
<p>API javascript que transforma qualquer elemento de seu HTML (uma div, por exemplo) em uma caixa móvel posicionada na parte de cima da tela.</p>
<p>Para utilizá-lo é necessário estar com o jQuery adicionado ao documento.</p>
<h4>O que acontece?</h4>
<p>O elemento upper-box vai virar uma caixa invisível na parte de cima da tela.</p>
<p>Quando o usuário se aproxima com o mouse da parte superior da tela (body), o elemento ira rolar, abrindo e exibindo seu conteúdo.</p>
<h4>Como usar?</h4>
<p>Primeiro inclua os arquivos jQuery e upper-box no seu html, desta forma:</p>
<div class="codigo">
<pre><em><code>&lt;script type="text/javascript" src="jquery.js"&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="upper-box.js"&gt;&lt;/script&gt;</code></em></pre>
</div>
<p>Seu uso é bem simples, basta adicionar upper-box ao class do elemento que vai virar upper-box.</p>
<p>Exemplo:</p>
<div class="codigo">
<pre><em><code>&lt;div id='div1' class='divClass'&gt;
 &lt;h2&gt;Olá,&lt;/h2&gt;
 &lt;p&gt;Esta div não é um &lt;b&gt;upper-box&lt;/b&gt;!&lt;/p&gt;
&lt;/div&gt;</code></em></pre>
</div>
<div class="codigo">
<pre><em><code>&lt;div id='div2' class='divClass upper-box'&gt;
 &lt;p&gt;Esta div será um &lt;b&gt;upper-box&lt;/b&gt;!&lt;/p&gt;
 &lt;p&gt;Simples, não?!&lt;/p&gt;
&lt;/div&gt;</code></em></pre>
</div>
<p>Espero não só ter ajudado como também ter instigado a colaboração de código.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.debugando.com/upper-box-componente-para-jquery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HTML &#8211; Padronizar faz bem</title>
		<link>http://www.debugando.com/html-padronizar-faz-bem/</link>
		<comments>http://www.debugando.com/html-padronizar-faz-bem/#comments</comments>
		<pubDate>Sun, 11 Jan 2009 15:56:19 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[JavaScript/Ajax]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.debugando.com/?p=424</guid>
		<description><![CDATA[
Sabemos que o HTML (sigla para Hipertext Markup Language) não é uma linguagem de programação, nem mesmo de script, mas sim uma linguagem de marcação de conteúdo.
É muito importante ter isso em mente porque &#8220;conteúdo&#8221; sempre foi uma palavra-chave na Internet. Com o passar do tempo foram sendo criados diversas formas de uso para a [...]]]></description>
			<content:encoded><![CDATA[<div id="strConteudo">
<p>Sabemos que o HTML (sigla para <em>Hipertext Markup Language</em>) não é uma linguagem de programação, nem mesmo de script, mas sim uma linguagem de marcação de conteúdo.</p>
<p>É muito importante ter isso em mente porque &#8220;conteúdo&#8221; sempre foi uma palavra-chave na Internet. Com o passar do tempo foram sendo criados diversas formas de uso para a Internet, desde comércio eletrônico até cursos de graduação online, mas tudo isso gira em torno de conteúdo.</p>
<p>Muita coisa mudou do início da era da Internet pra cá. No início tínhamos apenas conteúdo de texto, depois imagens, vídeos e assim por diante, até o que conhecemos hoje, onde temos muitas idéias e conceitos em um mundo totalmente integrado. Mas o a nossa simples linguagem criada por Tim Berners-Lee está presente desde o início, junto com o primeiro browser. Foi criada para criar um padrão único para renderização e linkagem de conteúdos.</p>
<p>O HTML evoluiu também, mas sua estrutura base é a mesma, são apenas mudanças para uma melhor padronização. São apenas algumas regras simples que são implementadas em cima do HTML original. O chamado XHTML ou HTML Extensível foi criado a partir da necessidade de termos um maior controle do site em diferentes plataformas, por exemplo, telefones celulares, smartphones, computadores com diferentes resoluções e navegadores conseguem enxergar exatamente o mesmo conteúdo e exatamente da mesma forma, o que era muito difícil ou até impossível antes.</p>
<p>No site do W3C (<a class="ext" href="http://www.w3.org/">http://www.w3.org/</a>) encontramos várias referências e motivos para se utilizar o HTML padronizado e limpo.</p>
<p>As aplicações web estão cada vez mais robustas e as linguagens de server-side como Java, Php e Ruby cada vez mais complexas e cheias de recursos. Então não valeria a pena não dar a ênfase correta para o &#8220;simples&#8221; HTML, pois será ele que vai dar o resultado para a aplicação, é ele que permite o usuário visualizar o conteúdo. Sem a ênfase correta, podemos ter erros de validação, ter usuários que podem não conseguir acessar o site, ou conteúdos importantes que podem não aparecer no site por simples erros de codificação HTML.</p></div>
]]></content:encoded>
			<wfw:commentRss>http://www.debugando.com/html-padronizar-faz-bem/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Introdução ao OpenLayers: Vetores</title>
		<link>http://www.debugando.com/introducao-ao-openlayers-vetores/</link>
		<comments>http://www.debugando.com/introducao-ao-openlayers-vetores/#comments</comments>
		<pubDate>Mon, 29 Dec 2008 13:44:23 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[JavaScript/Ajax]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[OpenLayers]]></category>

		<guid isPermaLink="false">http://www.debugando.com/?p=341</guid>
		<description><![CDATA[Módulo 4: Vetores
1. Formatos Vetoriais
Com o OpenLayers é possível ler e escrever em diversos formatos de dados vetoriais serializáveis como o GeoJSON, KML, GeoRSS, GML e WKT.

Você pode também utilizar as ferramentas de desenho para desenhar pontos, linhas e polígonos no seu mapa, não apenas para criação, como também para edição das feições e dos [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Módulo 4: Vetores</strong></p>
<p><em><strong>1. Formatos Vetoriais</strong></em></p>
<p>Com o OpenLayers é possível ler e escrever em diversos formatos de dados vetoriais serializáveis como o GeoJSON, KML, GeoRSS, GML e WKT.</p>
<p><img class="alignnone size-full wp-image-1516" src="http://www.fernandoquadro.com.br/html/wp-content/uploads/2008/12/openlayers_vetores_01.png" alt="" width="512" height="225" /></p>
<p>Você pode também utilizar as ferramentas de desenho para desenhar pontos, linhas e polígonos no seu mapa, não apenas para criação, como também para edição das feições e dos seus atributos.</p>
<p>Se você possuir o Google Earth, poderá visualizar suas camadas nele, bastanto para isso que você gere um KML (através de uma requisição WMS, ou indo diretamente no cliente OpenLayers do seu GeoServer), e abra-o no Google Earth.</p>
<p><em><strong>2. Estilos</strong></em></p>
<p>Uma das razões para utilizar dados vetoriais, é que com o OpenLayers você tem o poder de controlar o seu estilo, ou seja, a forma como ele irá aparecer no mapa para o cliente.</p>
<p>Por padrão, as feições desenhadas pelo OpenLayers são laranja. Porém os estilos são totalmente customizáveis, bastando para isso que você tenha um arquivo JavaScript definindo o estilo, ou um arquivo de estilos externo (um SLD do GeoServer, por exemplo).</p>
<p>O exemplo abaixo foi gerado a partir de uma requisição WFS ao GeoServer. A camada foi desenhada utilizando cores baseadas na população.</p>
<p><img class="alignnone size-full wp-image-1521" src="http://www.fernandoquadro.com.br/html/wp-content/uploads/2008/12/openlayers_vetores_02.png" alt="" width="503" height="204" /></p>
<p>Veja no código fonte do exemplo que adicionamos um nova propriedade:</p>
<p><img class="alignnone size-full wp-image-1523" src="http://www.fernandoquadro.com.br/html/wp-content/uploads/2008/12/openlayers_vetores_03.png" alt="" width="515" height="99" /></p>
<p>A propriedade styleMap do layer foi setada para myStyleMap, veja:</p>
<p><img class="alignnone size-full wp-image-1525" src="http://www.fernandoquadro.com.br/html/wp-content/uploads/2008/12/openlayers_vetores_04.png" alt="" width="426" height="76" /></p>
<p>Neste caso nós inicializamos o StyleMap com um hash de estilos. Este hash pode possuir as seguintes propriedades:</p>
<ul class="simple">
<li><cite>default</cite> &#8211; estilo que será desenhado na inicialização do mapa;</li>
<li><cite>select</cite> &#8211; estilo que será desenhado quando alguma feição for selecionada;</li>
<li><cite>temporary</cite> &#8211; estilo que será desenhado com estilos que devem ficar temporariamente no mapa.</li>
</ul>
<p>Nosso exemplo utiliza o padrão. Observe que quando você colocar o mouse em cima do mapa, o estilo irá mudar, isso porque um estilo diferente é utilizando quando o mouse passa em cima das feições.</p>
<p>Veja como ficou a definição dos estilos:</p>
<p><img class="alignnone size-full wp-image-1528" src="http://www.fernandoquadro.com.br/html/wp-content/uploads/2008/12/openlayers_vetores_05.png" alt="" width="518" height="687" /></p>
<p><img src="http://www.pplware.com/wp-content/images/ico_05.jpg" alt="" width="32" height="35" />Fonte: <a href="http://www.fernandoquadro.com.br/html/2008/12/29/introducao-ao-openlayers-parte-4/#content" target="_blank">Fernando Quadro</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.debugando.com/introducao-ao-openlayers-vetores/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

