Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Amigos,
Estou implemento 6 sites de um grupo de 6 empresas onde cada uma tem seu próprio site, mas em todos possuem um elemento em comum que se trata de uma barra de links para as outras empresas do grupo. Achei melhor usar um único arquivo js que escreve o html para este elemento, que é o mesmo para os 6 sites (e quando tivermos que alterar algo só faremos isso em um único lugar). O procedimento é até simples, mas estou achando muito feio a forma como escrevi o html em várias linhas, já que o javascript interpreta o salto de linha como uma nova instrução, fiz uma atribuição em cada linha. Tentei usar apenas um + para concatenar todas as linhas mas não deu certo. Não existe uma forma de escrever as várias linhas sem ter que atribuir o comando em cada linha.
Esta é a forma como fiz o .js:
window.onload = function() {
var alvo = document.getElementById("empresasGrupo");
//Escrever o html dentro da tag da variavel alvo
alvo.innerHTML = '<h2 class="titSecao">Grupo Fortaleza</h2>';
alvo.innerHTML += '<a class="netuno" href="[http://fortalezamoteis.com.br/netuno](http://fortalezamoteis.com.br/netuno)"><img src="[http://fortalezamoteis.com.br/images/netuno-rodape.png](http://fortalezamoteis.com.br/images/netuno-rodape.png)" alt="Netuno Motel"></a>';
alvo.innerHTML += '<a class="village" href="[http://fortalezamoteis.com.br/village](http://fortalezamoteis.com.br/village)"><img src="[http://fortalezamoteis.com.br/images/village-rodape.png](http://fortalezamoteis.com.br/images/village-rodape.png)" alt="Village Motel"></a>';
alvo.innerHTML += '<a class="villaverde" href="[http://fortalezamoteis.com.br/villaverde/](http://fortalezamoteis.com.br/villaverde/)"><img src="[http://fortalezamoteis.com.br/images/villaverde-rodape.png](http://fortalezamoteis.com.br/images/villaverde-rodape.png)" alt="VillaVerde Motel"></a>';
alvo.innerHTML += '<a class="platinum" href="[http://fortalezamoteis.com.br/platinum](http://fortalezamoteis.com.br/platinum)"><img src="[http://fortalezamoteis.com.br/images/platinum-rodape.png](http://fortalezamoteis.com.br/images/platinum-rodape.png)" alt="Platinum Motel"></a>';
alvo.innerHTML += '<a class="arte" href="[http://fortalezamoteis.com.br/arte](http://fortalezamoteis.com.br/arte)"><img src="[http://fortalezamoteis.com.br/images/arte-rodape.png](http://fortalezamoteis.com.br/images/arte-rodape.png)" alt="Arte Motel"></a>';
alvo.innerHTML += '<a class="shanadu" href="[http://fortalezamoteis.com.br/shanadu](http://fortalezamoteis.com.br/shanadu)"><img src="[http://fortalezamoteis.com.br/images/shanadu-rodape.png](http://fortalezamoteis.com.br/images/shanadu-rodape.png)" alt="Shanadu"></a>';
}
Desde já obrigado
Obrigado pela dica William,
Escrever html com javascript é realmente desaconselhado sim, mas ainda há situações em que é necessário. Server side entre diferentes servidores não rola (dependendo da hospedagem). Outro exemplo que esse caso é aconselhado é para a construção de barras de patrocínio. Exemplo: o UOL têm centenas de sites e blogs patrocinados com a barra deles no topo. Não sei se eles ainda usam iframe (o que é pior, mas usavam até um dia desse), mas o melhor meio seria a simples inclusão de um script, servindo para qualquer site independente de linguagem (php, asp, etc) e de onde estivesse hospedado. E no caso do ajax seria praticamente a mesma coisa.
Obrigado,
existem várias formas:
var txt = ' linha ' +
'outra linha' +
'outra linha';
ou também:
var txt = ' linha \
outra linha\
outra linha';
Mas eu pessoalmente acho feio vc criar html com javascript.
Não rola um include server-side ? ou então ler um arquivo só com ajax? ou coisa do tipo ?
.innerHTML tende a sair do controle e dar mais problemas doq solução, qndo usado dessa forma ai.