1

我已经为这个问题苦苦挣扎了 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

4

2 回答 2

0

只是一个想法,有:

async:false

同步加载您的 ajax 请求,并且请求必须完成,然后您才能执行其他任何操作。尝试将其更改为 true 或将其删除(默认为 true)。

于 2013-04-19T14:41:41.670 回答
0

当 DOM 就绪事件触发时,您可以启动 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);
            }
        });     
    });
});
于 2013-04-19T15:43:18.770 回答