Cadastrar Perguntas Home Minha Conta Mapa do Site
Buscar:
Buscar Guias sobre:
Escreva um guia
Script XML Javascript - vitrine rotativa
Autor:
Ver mais Guias do autor
10 de 16 qualificaram esse guia como útil.
Atualizado em 15/08/2007

Aí vai o código fonte de uma vitrine xml em javascript que roda as ofertas de x em x segundos.

A vantagem do javascript sobre o PHP é que o primeiro pode rodar em qualquer tipo de site em qualquer tipo de hospedagem, sem a necessidade de ter um servidor PHP como base.
 
Isso significa que sites que estejam em serviços gratuitos hospedagem (como blogs, fotologs) poderiam usar esse script para rodar ofertas do MercadoLivre via XML.

A configuração é simples:

1) tags = new Array("")
coloque aqui uma lista de palavras-chave, separadas por virgula e entre aspas. o script vai mostrar produtos relacionados com essas palavras.

2) promoUrlBase = "" e promoSiteId = ""
se referem ao site do MercadoLivre que você deseja promocionar.

3) tool="" é o numero do seu tool-id de traqueamento.

 

Código fonte

<html>
<head>
<script>
//************************************************************
// START CONFIGURATION
//************************************************************
//Keywords to search
var tags = new Array("mp3","mp4","sony","celular","notebook");
//MercadoLibre country site
var promoUrlBase = "http://www.mercadolivre.com.br/";
//MercadoLibre site ID (MLA, MLB, MLM, MCO, MLC, MLV, MLU, MEC, MPE)
var promoSiteId = "MLB";
var tool="0000000";
//************************************************************
// END CONFIGURATION
//************************************************************

var isIE = false;
var req;
var tpl;
var rowTpl;
var currWordIdx = 0;
var queryDelay = 4000;
var itemsQty = 10;
var titleCharsQty = 25;
var swapQty = 10;
var cols = 2;
var rowTpl = "<td width=50% align=center valign=middle><a class=promoclass href='##LINK##' target=_blank><img src='##IMG##' width=60 height=60 border=0><br>##DESCR## <strong>##PRECIO##</strong></a></td>";
var primeraVuelta = true;

function getNameCountry (siteId) {
var ml = "";
switch(siteId) {
case "MLA":
return ml + "Articulos en MercadoLibre Argentina";
break
case "MLB":
return "Ofertas no MercadoLivre Brasil!";
break
case "MLU":
return ml + "Articulos en MercadoLibre Uruguay";
break
case "MPE":
return ml + "Articulos en MercadoLibre Perú";
break
case "MLM":
return ml + "Articulos en MercadoLibre Mexico";
break
case "MLC":
return ml + "Articulos en MercadoLibre Chile";
break
case "MCO":
return ml + "Articulos en MercadoLibre Colombia";
break
case "MLV":
return ml + "Articulos en MercadoLibre Venezuela";
break
case "MEC":
return ml + "Articulos en MercadoLibre Ecuador";
break
default:
return ml + "Articulos en MercadoLibre Argentina";
}
}

function getNameCountry2 (siteId) {
var ml = "";
switch(siteId) {
case "MLA":
return ml + "Ver más...";
break
case "MLB":
return "Quer mais?";
break
case "MLU":
return ml + "Ver más...";
break
case "MPE":
return ml + "Ver más...";
break
case "MLM":
return ml + "Ver más...";
break
case "MLC":
return ml + "Ver más...";
break
case "MLP":
return ml + "Ver más...";
break
case "MCO":
return ml + "Ver más...";
break
case "MLV":
return ml + "Ver más...";
break
case "MEC":
return ml + "Ver más...";
break
default:
return ml + "Quer mais?";
}
}


function getUrlSite (siteId) {
switch(siteId) {
case "MLA":
return "http://www.mercadolibre.com.ar/";
break
case "MLB":
return "http://www.mercadolivre.com.br/";
break
case "MLU":
return "http://www.mercadolibre.com.uy/";
break
case "MPE":
return "http://www.mercadolibre.com.pe/";
break
case "MLM":
return "http://www.mercadolibre.com.mx/";
break
case "MLC":
return "http://www.mercadolibre.cl/";
break
case "MCO":
return "http://www.mercadolibre.com.co/";
break
case "MLV":
return "http://www.mercadolibre.com.ve/";
break
case "MEC":
return "http://www.mercadolibre.com.ec/";
break
default:
return "http://www.mercadolivre.com.br/";
}
}

function getUrlSite2 (siteId) {
switch(siteId) {
case "MLA":
return "http://pmstrk.mercadolibre.com.ar/jm/PmsTrk?tool=-1";
break
case "MLB":
return "http://pmstrk.mercadolivre.com.br/jm/PmsTrk?tool=-1";
break
case "MLU":
return "http://pmstrk.mercadolibre.com.uy/jm/PmsTrk?tool=-1";
break
case "MPE":
return "http://pmstrk.mercadolibre.com.pe/jm/PmsTrk?tool=-1";
break
case "MLM":
return "http://pmstrk.mercadolibre.com.mx/jm/PmsTrk?tool=-1";
break
case "MLC":
return "http://pmstrk.mercadolibre.cl/jm/PmsTrk?tool=-1";
break
case "MCO":
return "http://pmstrk.mercadolibre.com.co/jm/PmsTrk?tool=-1";
break
case "MLV":
return "http://pmstrk.mercadolibre.com.ve/jm/PmsTrk?tool=-1";
break
case "MEC":
return "http://pmstrk.mercadolibre.com.ec/jm/PmsTrk?tool=-1";
break
default:
return "http://pmstrk.mercadolibre.com.ar/jm/PmsTrk?tool=-1";
}
}

function processResult() {
var xml = reques.responseXML;
var listing = xml.getElementsByTagName("listing");

if (listing.length == 0 || typeof listing.item(0) == 'undefined' || listing.item(0) == null) {
return;
}

var qty = listing.item(0).getAttribute("items_total");
var toShow = Math.min(qty,itemsQty);
var items = xml.getElementsByTagName("item");
if (items.length <= 0)
return;
else
toShow = Math.min(toShow, items.length);
var rows = "";
var cells = new Array(toShow);

for (var i=0; i < toShow; i++ ) {
tmp = rowTpl;

id = items.item(i).getAttribute("id");
title = document.createTextNode(getElementTextNS("", "title", items[i], 0)).data;
title = title.substring(0,titleCharsQty);
price = document.createTextNode(getElementTextNS("", "price", items[i], 0)).data;
currency = document.createTextNode(getElementTextNS("", "currency", items[i], 0)).data;
imageUrl = document.createTextNode(getElementTextNS("", "image_url", items[i], 0)).data;
if ( imageUrl == "undefined" ) imageUrl = getUrlSite(promoSiteId)+"jm/img?s="+promoSiteId+"&f=artsinfoto.gif&v=P";

tmp = tmp.replace("##DESCR##", title);
tmp = tmp.replace("##TITLE##", title);
tmp = tmp.replace(/##LINK##/gi, getUrlSite2(promoSiteId) +tool+"&go=" + getUrlSite(promoSiteId) +"jm/item?site="+promoSiteId+"$$$"+"id="+id);
tmp = tmp.replace("##IMG##", imageUrl);
tmp = tmp.replace("##PRECIO##", currency+' '+price);

cells[i] = tmp;

}
for (var i=0; i < swapQty; i++ ) {
rnd1 = Math.round(Math.random() * 100000000) % cells.length;
rnd2 = Math.round(Math.random() * 100000000) % cells.length;
tmp = cells[rnd1];
cells[rnd1] = cells[rnd2];
cells[rnd2] = tmp;
}
for (var i=0; i < toShow; i++ ) {
rows += cells[i];
if ((i+1)%cols==0) rows += "</tr><tr>";
}

if (toShow != 0) {
document.getElementById("galTpl").innerHTML = tpl.replace("<!--##ROWS##-->", rows);
document.getElementById("galTpl").style.visibility = "";
}
}

//Retorna un XMlHttpRequest, handler es el nombre de la funcion q va a tratar los eventos, y isDebugEnabled indica si se muestran mensajes para debug.
function GetXmlHttpRequest (handler, isDebugEnabled) {
var req=false;
//para MZ
if(window.XMLHttpRequest) {
try {
req = new XMLHttpRequest();
} catch(e) {
req = false;
if (isDebugEnabled)
alert (e);
}
// para IE
} else if(window.ActiveXObject) {
try {
req = new ActiveXObject("Msxml2.XMLHTTP");
} catch(e) {
try {
req = new ActiveXObject("Microsoft.XMLHTTP");
} catch(e) {
req = false;
if (isDebugEnabled)
alert (e);
}
}
}

if(req) {
req.onreadystatechange = handler;
if (isDebugEnabled)
alert ("Request creado correctamente, el handler es: "+handler);
}

return req;
}

function getElementTextNS(prefix, local, parentElem, index) {
var result = "";
if (prefix && isIE) {
result = parentElem.getElementsByTagName(prefix + ":" + local)[index];
} else {
result = parentElem.getElementsByTagName(local)[index];
}

if (result) {
if (result.childNodes.length > 1) {
return result.childNodes[1].nodeValue;
} else {
if (result.firstChild != null ){
return result.firstChild.nodeValue;
}
}
} else {
return "n/a";
}
}


function actTicker(){

tpl = document.getElementById("galTpl").innerHTML;
tpl = tpl.replace("##VER##", getNameCountry2 (promoSiteId));
tpl = tpl.replace("##SITE##", getNameCountry (promoSiteId));
tpl = tpl.replace("##URL_SITE_VISITOR##", getUrlSite2(promoSiteId) +tool+"&go=" + getUrlSite(promoSiteId));

searchPromos();
setInterval ("searchPromos()", queryDelay);
}

function searchPromos(){
var url = getUrlSite(promoSiteId)+"jm/searchXml?as_word="+encodeURIComponent(tags[currWordIdx]);
reques = GetXmlHttpRequest(processReqChange, false);
reques.open("GET", url, true);
reques.send("");

//window.status = "url="+url;
if ( currWordIdx++ >= tags.length-1 ) currWordIdx = 0;
}

function processReqChange() {
if (reques.readyState == 4) {
if (reques.status == 200) {
processResult();
} else {
//oops!
}
}
}
</script>
<title>Untitled Document</title>
<style type="text/css">
<!--
a {
font-family: Arial, Helvetica, sans-serif;
font-size: 10px;
}
.style1 {
font-family: Arial, Helvetica, sans-serif;
font-size: 12px;
color: #000099;
font-weight: bold;
}
-->
</style>
</head>

<body>
<!-- Ticker (carga oculto) -->
<div id=galTpl style="visibility:hidden">
<table width="251" border="0" cellpadding="0" cellspacing="0">
<tr>
<td colspan="3" height="1" bgcolor="#CEC34A"></td>
</tr>
<tr>
<td width="1" bgcolor="#CEC34A"> </td>
<td width="249" height="25" align="center" bgcolor="#FEE600" class="tituloscajas style1">##SITE##</td>
<td width="1" bgcolor="#CEC34A"> </td>
</tr>
<tr>
<td colspan="3" height="1" bgcolor="#CEC34A"></td>
</tr>
<tr>
<td bgcolor="#CEC34A"><img src="http://www.mercadolibre.com.ar/org-img/t.gif" width="1" height="1"></td>
<td align="center" valign="top"><table width=100% border=0 cellspacing=3 cellpadding=0 align=center bgcolor="#FFFFFF"><tr><!--##ROWS##--> </tr> </table><br>
<table width="220" border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="20" align="right"><a href="http://guia.mercadolivre.com.br/script-xml-javascript-vitrine-rotativa-13510-VGP##URL_SITE_VISITOR##jm/search?as_categ_id=1648&as_pr_categ_id=" class="hplink2" target=_blank>##VER##</a></td>
</tr>
</table></td>
<td bgcolor="#CEC34A"><img src="http://www.mercadolibre.com.ar/org-img/t.gif" width="1" height="1"></td>
</tr>
<tr>
<td colspan="3" height="1" bgcolor="#CEC34A"></td>
</tr>
</table>
<br>
</div>
<!-- Activa el ticker-->
<script> actTicker(); </script>
</body>
</html>
 

Palavras-chave: Xml | Javascript | Mercadosocios
10 de 16 qualificaram esse guia como útil.
O autor assume total responsabilidade pela publicação desse guia. Você acha que este guia é contrário às políticas do MercadoLivre? Informe aqui.
Nesta seção serão encontradas informações publicadas por Usuários, sob sua própria responsabilidade. O MercadoLivre não exerce controle do conteúdo das Guias e não responderá por informações imprecisas, errôneas ou difamatórias, tampouco pelo uso que se faça delas. O ingresso às Guias é uma decisão voluntárias do internauta, que aceita a possibilidade de encontrar material que possa afetar sua suscetibilidade .
Guias Relacionados
Xml Guia Básico Para Mercadosó...
Como Usar Filtro Duplo No Xml
Baixe Aqui Scripts Que Lêem Xm...
Como Aperfeiçoar O Lucro Atrav...
Pms Rank - Otimizando Seu Shop...

Veja Mais...


Voltar ao topo