Olá,
Estou utilizando o YQL para obter o valor de uma div de uma página externa.
Explicarei o motivo:
Nesta div, contém o valor de um produto que preciso comparar com
o valor que possuo (em uma variável).
Com o código que tenho, consegui pegar todo o código da página, fiz um
innerHTML para criar o conteúdo em uma div, e depois de ter criado este
conteúdo, consigo pegar o ID da div e com um substr e um setTimeout
pegar o valor exato da div (ex; R$ 30,00).
Porém, preciso fazer isto para vários produtos, pois tenho que comparar
todos para atualizar os meus valores sem ter que verificar manualmente.
Tentei fazer um array de urls e um for para criar os conteúdos um abaixo do outro
para pegar os valores e comparar, mas não consigo imprimir todos, somente
imprime o ultimo.
Alguém poderia me ajudar com este for?
Ou alguma outra maneira mais fácil de conseguir esta informação para
comparar com os meus valores?
segue o código:
<script type="text/javascript">
var your_url = ["http://www.miniinthebox.com/pt/case-de-pele-com-teclado-bluetooth-e-suporte-para-o-novo-ipad-branco-_p320683.html","http://www.miniinthebox.com/pt/case-em-silicone-fina-para-novo-ipad-varias-cores-_p335146.html?pos=ultimately_buy_9"];
</script>
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js" ></script>
<script type="text/javascript">
jQuery.ajax = (function(_ajax){
var protocol = location.protocol,
hostname = location.hostname,
exRegex = RegExp(protocol + '//' + hostname),
YQL = 'http' + (/^https/.test(protocol)?'s':'') + '://query.yahooapis.com/v1/public/yql?callback=?',
query = 'select * from html where url="{URL}" and xpath="*"';
function isExternal(url) {
return !exRegex.test(url) && /:\/\//.test(url);
}
return function(o) {
var url = o.url;
if ( /get/i.test(o.type) && !/json/i.test(o.dataType) && isExternal(url) ) {
o.url = YQL;
o.dataType = 'json';
o.data = {
q: query.replace(
'{URL}',
url + (o.data ?
(/\?/.test(url) ? '&' : '?') + jQuery.param(o.data)
: '')
),
format: 'xml'
};
if (!o.success && o.complete) {
o.success = o.complete;
delete o.complete;
}
o.success = (function(_success){
return function(data) {
if (_success) {
_success.call(this, {
responseText: data.results[0]
.replace(/<script[^>]+?\/>|<script(.|\s)*?\/script>/gi, '')
}, 'success');
}
};
})(o.success);
}
return _ajax.apply(this, arguments);
};
})(jQuery.ajax);
var your_url = ["http://www.miniinthebox.com/pt/case-de-pele-com-teclado-bluetooth-e-suporte-para-o-novo-ipad-branco-_p320683.html","http://www.miniinthebox.com/pt/case-em-silicone-fina-para-novo-ipad-varias-cores-_p335146.html?pos=ultimately_buy_9"];
var b = your_url.length;
for (var i = 0; i<b; i++) {
$.ajax({
url: your_url[i],
type: 'GET',
success: function(is) {
var text = is.responseText;
var p = document.write('<div id="'+i+'"style="width:992px;height:550px;">' + text + '<br />'+'</div>');
}
});
alert(i);
}
</script>
<script>
function msg() {
var b = document.getElementById('salePrice_320683').innerHTML;
alert(b.substr(0,5));
}
setTimeout("msg()",6000);
</script>
<body>
</body>