<?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>Leandro Garcia &#187; Java Script</title>
	<atom:link href="http://www.leandrogarcia.com/blog/tag/java-script/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.leandrogarcia.com</link>
	<description></description>
	<lastBuildDate>Wed, 11 Jan 2012 13:31:51 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Função Trim em Javascript</title>
		<link>http://www.leandrogarcia.com/blog/funcao-trim-em-javascript/</link>
		<comments>http://www.leandrogarcia.com/blog/funcao-trim-em-javascript/#comments</comments>
		<pubDate>Wed, 06 Jan 2010 20:02:57 +0000</pubDate>
		<dc:creator>leandro garcia</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[função]]></category>
		<category><![CDATA[Java Script]]></category>

		<guid isPermaLink="false">http://www.leandrogarcia.com/blog/?p=201</guid>
		<description><![CDATA[Se tem uma função básica em quase todas as linguagens de programação e extremamente util é a &#8220;trim&#8221;.
Pra quem não sabe, a função trim serve para retirar os espaços antes e depois de uma string. Algom mais ou menos assim:
Antes:
&#8221;     Olá Mundo      &#8221;
Depois do uso do [...]]]></description>
			<content:encoded><![CDATA[<p>Se tem uma função básica em quase todas as linguagens de programação e extremamente util é a &#8220;trim&#8221;.</p>
<p>Pra quem não sabe, a função trim serve para retirar os espaços antes e depois de uma string. Algom mais ou menos assim:</p>
<blockquote><p>Antes:<br />
&#8221;     Olá Mundo      &#8221;</p>
<p>Depois do uso do trim</p>
<p>&#8220;Olá Mundo&#8221;
</p></blockquote>
<p>Mas, sempre tem um mas&#8230;. Em Javascript não tem, pelo menos não nativa. Você deve criar uma.</p>
<p>Há algum tempo atrás eu encontrei uma na internet que usa expressões regulares para retirar esses espaços. Não sei quem a criou, mas se souberem me avisem para que eu possa colocar os créditos por ela.</p>
<p>Vamos à função. Bem simples.</p>
<pre class="brush: jscript; title: ; notranslate">function Trim(str){return str.replace(/^\s+|\s+$/g,&quot;&quot;);}</pre>
<p>Depois é só usar.</p>
<pre class="brush: jscript; title: ; notranslate">
//Exemplo
var string = &quot;   Tem espaço antes e Depois     &quot;;

alert(Trim(string));
</pre>
<p>Testem. Usem. Usufruam.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.leandrogarcia.com/blog/funcao-trim-em-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Offset, descobrindo o posicionamento absoluto de um elemento</title>
		<link>http://www.leandrogarcia.com/blog/offset-descobrindo-o-posicionamento-absoluto-de-um-elemento/</link>
		<comments>http://www.leandrogarcia.com/blog/offset-descobrindo-o-posicionamento-absoluto-de-um-elemento/#comments</comments>
		<pubDate>Tue, 03 Mar 2009 17:23:38 +0000</pubDate>
		<dc:creator>leandro garcia</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Absolute]]></category>
		<category><![CDATA[Absoluto]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Java Script]]></category>
		<category><![CDATA[Offset]]></category>
		<category><![CDATA[Posicionamento]]></category>

		<guid isPermaLink="false">http://www.leandrogarcia.com/blog/?p=77</guid>
		<description><![CDATA[Anteriormente escrevi sobre maneiras de otimizar o carregamento das páginas.
Umas destas maneiras, é colocar todas as chamadas de scripts na parte de baixo da página, mas aí tem um problema. Aqui na empresa as publicidades são dinamicas e exibidas através de script, logo, para eu exibir um superbanner na posição correta, eu deveria chamar o [...]]]></description>
			<content:encoded><![CDATA[<p>Anteriormente escrevi sobre maneiras de otimizar o carregamento das páginas.</p>
<p>Umas destas maneiras, é colocar todas as chamadas de scripts na parte de baixo da página, mas aí tem um problema. Aqui na empresa as publicidades são dinamicas e exibidas através de script, logo, para eu exibir um superbanner na posição correta, eu deveria chamar o JS externo no head da página, mas é oposto ao que devemos práticar aqui.</p>
<p>Alguns de você dirão, basta que você coloque um posicionamento reletivo(relative) na div container e coloque a publicidade na parte do código e posicione a div com a publicidade em absoluto(absolute).</p>
<p>Isso funciona, desde que a publicidade seja sempre no mesmo local, mas se a publicidade é um island, por exemplo que é no meio do conteúdo, o que fazer?</p>
<p>É aí que surge o Offset da página.</p>
<p>Com o Offse, Você consegue descobrir onde exatamente, em Pixels, está o elemebto que você quer encontrar.</p>
<p>Por exemplo. Eu tenho um campo de busca e quero ao clicar nele, abrir um suggest, é com o Offset.</p>
<p>Ou no caso do Banner, como eu fiz:</p>
<p>Criei uma div com o <strong>id bannerposicao </strong>nessa div eu joguei o tamanho do banner (height:240px;width:120px). Com isso eu criei um espaço vazio que eu posso preencher porexemplo com o endereço da central de relacionamentos (bom para efeito de SEO).</p>
<p>No final do código eu criei uma outra div com o <strong>id banner </strong>e joguei (via CSS) o tamanho da publicidade (height:240px;width:120px) e a posicionei como absoluto (position:absolute).</p>
<p>Depois disso, eu usei a função abaixo para posicionar a publicidade no lugar dela.</p>
<p><strong>HTML</strong></p>
<pre class="brush: xml; title: ; notranslate">
&lt;div id=&quot;bannerposicao&quot;&gt; &lt;a href=&quot;http://www.leandrogarcia.com/blog&quot;&gt; Blog do Garcia &lt;/a&gt; &lt;/div&gt;
&lt;br class=&quot;clear&quot; /&gt;
&lt;div id=&quot;corpo&quot;&gt;Corpo&lt;/div&gt;
Aqui abaixo esta o banner
&lt;div id=&quot;banner&quot;&gt; &lt;img src=&quot;http://www.leandrogarcia.com/blog/wp-content/uploads/2009/03/puboffset.gif&quot; alt=&quot;publicidade&quot; /&gt; &lt;/div&gt;
&lt;br class=&quot;clear&quot; /&gt;
&lt;button onclick=&quot;alert(document.getElementById('bannerposicao').offsetHeight);&quot;&gt; offsetHeight &lt;/button&gt;
&lt;button onclick=&quot;alert(document.getElementById('bannerposicao').offsetWidth);&quot;&gt; offsetWidth &lt;/button&gt;
&lt;button onclick=&quot;alert(document.getElementById('bannerposicao').offsetLeft);&quot;&gt; offsetLeft &lt;/button&gt;
&lt;button onclick=&quot;alert(document.getElementById('bannerposicao').offsetTop);&quot;&gt; offsetTop &lt;/button&gt;
</pre>
<p><strong>CSS</strong></p>
<pre class="brush: css; title: ; notranslate">
#bannerposicao{float:left; width:120px; height:240px; background:#ccc}
#banner{display:block; position:absolute; width:120px; height:240px; background:#ccc}
#corpo{clear:both; height:400px}
</pre>
<p><strong>JS</strong></p>
<pre class="brush: jscript; title: ; notranslate">
function exibepublicidade(){
var $arg = document.getElementById('bannerposicao'); //Essa linha pega os dados da div
var $curTop=0,$curLeft=0,$curWidth=0; // Essa, cria as variáveis de largura, left e top
if($arg.offsetParent) {
do {
$curLeft += $arg.offsetLeft;
$curTop += $arg.offsetTop;
}while($arg = $arg.offsetParent)
} //O if acima, pega a posição da Div em relação à janela
var $posicao = document.getElementById('banner');
$posicao.style.top = $curTop + &quot;px&quot;;
$posicao.style.left = $curLeft + &quot;px&quot;;
}
exibepublicidade();
</pre>
<p>Com o Offset conseguimos pegar a Altura, a Largua a Posição Left e Top do elemento.</p>
<p>Altura (offsetHeight), Largura (offsetWidth), Left (offsetLeft) e Top(offsetTop);</p>
<p><a title="Offset" href="http://tutoriais.leandrogarcia.com/offset/offset.html" target="_blank">Veja o exemplo</a></p>
<p><a href="http://tutoriais.leandrogarcia.com/offset/offset.zip" target="_blank">Download</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.leandrogarcia.com/blog/offset-descobrindo-o-posicionamento-absoluto-de-um-elemento/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Desabilitar o Enter em um form com Javascript</title>
		<link>http://www.leandrogarcia.com/blog/desabilitar-o-enter-em-um-form-com-javascript/</link>
		<comments>http://www.leandrogarcia.com/blog/desabilitar-o-enter-em-um-form-com-javascript/#comments</comments>
		<pubDate>Thu, 29 Jan 2009 19:24:19 +0000</pubDate>
		<dc:creator>leandro garcia</dc:creator>
				<category><![CDATA[dicas]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Java Script]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://www.leandrogarcia.com/blog/?p=76</guid>
		<description><![CDATA[Recentemente, estive trabalhando em um sistema com cadastros, quando me deparei com um problema, o Enter.
Não podia Permitir que o usuário desse o action do form ao pressionar o enter, geralemente para mudar de campo.
Pesquisei na Internet, achei algumas opções, mas acabei criando a minha do jeito que eu realmente precisava. Cheguei ao script abaixo.
Linha [...]]]></description>
			<content:encoded><![CDATA[<p>Recentemente, estive trabalhando em um sistema com cadastros, quando me deparei com um problema, o Enter.</p>
<p>Não podia Permitir que o usuário desse o action do form ao pressionar o enter, geralemente para mudar de campo.</p>
<p>Pesquisei na Internet, achei algumas opções, mas acabei criando a minha do jeito que eu realmente precisava. Cheguei ao script abaixo.</p>
<pre class="brush: jscript; title: ; notranslate">

function arrumaEnter (field, event) {
var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
if (keyCode == 13) {
var i;
for (i = 0; i &lt; field.form.elements.length; i++)
if (field == field.form.elements[i])
break;
i = (i + 1) % field.form.elements.length;
field.form.elements[i].focus();
return false;
}
else
return true;
}
</pre>
<pre class="brush: jscript; title: ; notranslate">
&lt;input onkeypress=&quot;return arrumaEnter(this, event)&quot; maxlength=&quot;60&quot; name=&quot;emitente&quot; type=&quot;text&quot; /&gt;
</pre>
<p>Linha a linha</p>
<blockquote><p><strong>function arrumaEnter (field, event) { </strong>- Nome da funcção, que recebe o campo e o evento utilizado</p>
<p><strong>var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;</strong> &#8211; Recebe o evento utilizado</p>
<p><strong>if (keyCode == 13) {</strong> &#8211; Se a tecla é o Enter</p>
<p><strong>var i; </strong>- Cria a variável</p>
<p><strong>for (i = 0; i &lt; field.form.elements.length; i++)</strong> &#8211; Roda todos os camposdo form</p>
<p><strong>if (field == field.form.elements[i]) </strong>- Se o campo utilizado é o atual</p>
<p><strong>break;</strong> Para</p>
<p><strong>i = (i + 1) % field.form.elements.length;</strong> &#8211; Adiciona 1 ao campo atual</p>
<p><strong>field.form.elements[i].focus();</strong> &#8211; Dá um foco no próximo campo</p>
<p><strong>return false;</strong> &#8211; Retorna Falso, ou seja, não permite o submit</p>
<p><strong>else</strong> &#8211; Caso contrário</p>
<p><strong>return true;</strong> &#8211; Permite o Submit</p></blockquote>
<blockquote><p><strong><span class="attribute-name">onkeypress</span>=</strong><span class="attribute-value"><strong>&#8220;return arrumaEnter(this, event)&#8221;</strong> &#8211; Chama a função</span></p></blockquote>
<p><a title="Veja" href="http://tutoriais.leandrogarcia.com/arrumaEnter/arrumaEnter.html" target="_blank">Veja</a></p>
<p><a title="download" href="http://tutoriais.leandrogarcia.com/arrumaEnter/arrumaEnter.zip" target="_blank">download</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.leandrogarcia.com/blog/desabilitar-o-enter-em-um-form-com-javascript/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Função para abertura de pop-up</title>
		<link>http://www.leandrogarcia.com/blog/funcao-para-abertura-de-pop-up/</link>
		<comments>http://www.leandrogarcia.com/blog/funcao-para-abertura-de-pop-up/#comments</comments>
		<pubDate>Mon, 19 May 2008 15:29:33 +0000</pubDate>
		<dc:creator>leandro garcia</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Java Script]]></category>
		<category><![CDATA[Window.Open]]></category>

		<guid isPermaLink="false">http://www.leandrogarcia.com/blog/?p=5</guid>
		<description><![CDATA[Esta é uma função simples que criei tem algum tempo e utilizo sempre que preciso abrir algum tipo de Janela em formato pop-up.
Eu poderia utilizar uma função específica para cada tipo de pop-up, mas pesem: Se um site tiver links para abrir 5 pop-ups, seria 5 códigos diferentes, ou seja, como resultado o dódigo da [...]]]></description>
			<content:encoded><![CDATA[<p>Esta é uma função simples que criei tem algum tempo e utilizo sempre que preciso abrir algum tipo de Janela em formato pop-up.</p>
<p>Eu poderia utilizar uma função específica para cada tipo de pop-up, mas pesem: Se um site tiver links para abrir 5 pop-ups, seria 5 códigos diferentes, ou seja, como resultado o dódigo da página seria maior e a necessidade de ampliar a bande de acesso ao site poderia aumentar.</p>
<p><em><strong>A função:</strong></em></p>
<blockquote><p><strong>&lt;script type=&#8221;text/javascript&#8221;&gt;</strong></p>
<p><strong>function abre(caminho,largura,altura,rolagem){<br />
w = largura;<br />
h = altura;<br />
rol = rolagem;<br />
largura = screen.width;<br />
altura = screen.height;<br />
XX = (largura-w)/2;<br />
YY = (altura-h)/2;<br />
janela = window.open(caminho,nm_janela, &#8216;width=&#8217;+w+&#8217;, height=&#8217;+h+&#8217;, left=&#8217;+XX+&#8217;, top=&#8217;+YY+&#8217;menubar=no, toolbar=no,status=no,scrollbars=&#8217;+rol+&#8217;,');<br />
janela.focus();</strong><strong> }</strong></p>
<p><strong>&lt;/script&gt;</strong></p></blockquote>
<p>Vamos ver linha a linha como funciona.</p>
<p>Linha 1</p>
<p><strong>function abre(caminho,nm_janela,largura,altura,rolagem){</strong></p>
<p>Esta linha é onde se inicia a função, ou seja, é o nome da função e as variáveis que ela utiliza (caminho,largura,altura,rolagem).</p>
<p><strong>As linhas 2, 3 e 4, </strong>nestas  linhas eu coloco o conteúdo das variáveis que eu recebi via função em uma variáel que com um nome de minha preferência. Não há a necessidade de iniciar essas variáveis, uma vez que eu poderia usar os nomes que vem entre os parênteses, mas a títuli de clareza das informações, eu prefiro utilizar.</p>
<p><strong>As Linhas 5 e 6 </strong>iniciam as variáveis largura e altura com o tamanho da tela de pessoa que está acessando o site utiliza. ex. 1024&#215;768 px</p>
<p><strong>Linhas 7 e 8</strong>, estas linhas são a chave para que a pop-up seja aberta centralizada na tela. É iniciada as variáveis XX e YY com a largura(altura) &#8211; a largura(altura) que você enviou via função w(h) e divide por 2.</p>
<p><strong>Linha 9</strong> inicia a veriável que abrirá a pop-up, mais uma vez, eu não precisaria iniciar a variável, bastaria que eu escrevesse o caminho depois do igual, mas para deixar o código claro, prefiro iniciar a variável.</p>
<p><strong>window.open =</strong> abre a janela</p>
<p><strong>caminho</strong>, esta é a variável recebida via função. Ex. &#8220;www.leandrogarcia.com/blog&#8221;</p>
<p><strong>nm_janela</strong>, está é uma outra variável reebida pela função que diz qual é o nome da Janela, é o que dirá se você clicar em um outro link com esta função se deve abrir a nova página na Janela já aberta ou em uma nova. Ex. nm_janela = um, abre uma Janela; segundo clique, nm_janela = um, abre por cima da outra janela. nm_janela = dois, abre uma nova janela</p>
<p><strong>width=&#8217;+w+&#8217;,</strong> é a largura da Janela</p>
<p><strong>height=&#8217;+h+,</strong> é a altura da Janela</p>
<p><strong>left=&#8217;+XX+&#8217;</strong>, é onde o browser entede que deve centralizar a abertura da Janela horizontalmente</p>
<p><strong>top=&#8217;+YY+&#8217;,</strong> é onde o browser entede que deve centralizar a abertura da Janela verticalmente</p>
<p><strong>menubar=no,toolbar=no,status=no, </strong>diz ao browser para não exibir a barra de menus, de ferramentas e a barra de status.</p>
<p><strong>scrollbars=&#8217;+rol+&#8217;,</strong> diz ao rowser se haverá barra de rolagem, yes, no e auto (eu defini como variável da função, pois posso dizer se vai ou não ter barra de rolagem, mas poderia ter iniciado com yes, no ou auto.</p>
<p>e por último, <strong>janela.focus()</strong>; é onde o browser recebe a ordem de excutar a variável janela</p>
<p>Legal, coloquei esta função no meu site, como eu faço para executála?</p>
<p>Simples, você chama ela via link. Ex. &lt;a href=&#8221;javascript:abre(&#8216;http://www.leandrogarcia.com/blog&#8217;,'blog do Garcia&#8217;,&#8217;500&#8242;,&#8217;500&#8242;,&#8217;no&#8217;);&#8221;&gt;Abrir Janela&lt;/a&gt; ou, &lt;a href=&#8221;#&#8221; onClick=&#8221;abre(&#8216;http://www.leandrogarcia.com/blog&#8217;,'blog do Garcia&#8217;,&#8217;500&#8242;,&#8217;500&#8242;,&#8217;no&#8217;);&#8221;&gt;Abrir Janela&lt;/a&gt;</p>
<p>A função descrita deve ser colada entre as tags &lt;head&gt; e &lt;/head&gt; do seu html, ou chamada externamente, mas isso deixa pra uma outra hora.</p>
<p>Espero que esta Função Ajude.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.leandrogarcia.com/blog/funcao-para-abertura-de-pop-up/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

