我已经为这个问题奋斗了2天了。我已经找到了很多关于类似主题的教程,但没有一个帮助我解决我的问题。
在Volusion购物车上,我试图远程抓取产品页面中的内容,并将其信息保存在变量中,以便在购物车上使用。我无法使用PHP(不支持Volusion),并且我被迫使用javascript(据我所知)这样做。以下代码在购物车项目中搜索特定品牌名称“Palliser”。如果该名称存在,它将抓取链接,使用ajax向与链接关联的页面发送请求,并获取我需要的信息。它获取了我需要的信息,但是在这个过程中我的页面变成白色并且它留下了2013年的年份...我不知道为什么会发生这种情况。这是我第一次使用ajax,所以有人可以帮忙!?!?
$(window).load(function(){
var seat_count = 0;
var i = 0;
var prodLinks = [];
var numSeats = '';
$('b.cart-item-name:contains("Palliser")').filter(function(index) {
prodLinks[i] = 'http://xepwk.cjvgn.servertrust.com/'+$(this).parent('a').attr('href');
$.ajax({
url:prodLinks[i],
//data:string,
async:false,
success: function(result){
var html = jQuery('<div>').html(result);
var prodInfoArray = html.find('span.PageText_L660n').parent('b').parent('td').html().split('<br>');
var numSeats = prodInfoArray[1];
alert(numSeats);
}
});
i+=1;
});
以下是帮助我尽可能地获取信息的链接:Get the content of another page's div with jQuery Ajax
答案 0 :(得分:0)
只是一个想法,有:
async:false
同步加载您的ajax请求,并且在您可以执行任何其他操作之前必须完成请求。尝试将其更改为true或将其删除(默认情况下为true)。
答案 1 :(得分:0)
您可以在DOM ready事件触发时启动ajax请求。因为您不需要图像和其他人员来开始ajax请求。此外async:true
必须在您的情况下提供帮助。
var seat_count = 0;
var i = 0;
var prodLinks = [];
var numSeats = '';
$(document).ready(function() {
$('b.cart-item-name:contains("Palliser")').filter(function(index) {
prodLinks[i] = 'http://xepwk.cjvgn.servertrust.com/'+
$(this).parent('a').attr('href');
$.ajax({
url:prodLinks[i++],
//data:string,
async:true,
success: function(result){
var html = jQuery('<div>').html(result);
var prodInfoArray = html.find('span.PageText_L660n')
.parent('b').parent('td').html().split('<br>');
var numSeats = prodInfoArray[1];
alert(numSeats);
}
});
});
});