编辑代码

var maxTryTimes=10;var currentTimes=0;
function craw() {
    if(isNeedLogin()){
        currentTimes=0;
        window.webkit.messageHandlers.login.postMessage("login");
        return;
    }
    if(isEmptyPage()){
        if(currentTimes > maxTryTimes){
            currentTimes = 0;
            var info={};
            info["success"]=0;
            var empty_json=JSON.stringify(info);
            window.webkit.messageHandlers.empty.postMessage(empty_json);
            return;
        }else{
            currentTimes++;
        }
    }
    var cartDiv = document.getElementsByClassName("cart-order-list-container");
    var items=[];
    for(var j=0;j<cartDiv.length;j++){
        var productDivs = cartDiv[j].getElementsByClassName("swipeout-item");
        for (var i = 0; i < productDivs.length; i++) {
            var item={};
            item = parseItem(productDivs[i].innerHTML);
            var sku = productDivs[i].__vue__.$vnode.key;
            if(sku) {
                item["sku"]=sku.substr(0, sku.length-1);
                items.push(item);
            }
        }
    }
    if(items.length > 0){
        currentTimes=0;
    }
    var data_json=JSON.stringify(items);
    window.webkit.messageHandlers.data.postMessage(data_json);
}

function parseItem(itemHtml) {
    var item={};
    var imgReg = new RegExp("<img.*?data-src=\"(.*?)[!\"]","i");
    if(imgReg.test(itemHtml)) {
        item["image_url"]=imgReg.exec(itemHtml)[1].trim();
    }
    var nameReg = new RegExp("class=\"cart-item__name\">(.*?)</div>", "i");
    if(nameReg.test(itemHtml)) {
        item["title"]= nameReg.exec(itemHtml)[1].trim();
    }
    var priceReg = new RegExp("<span.*?>(¥.*?)</span></div>","i");
    if(priceReg.test(itemHtml)){
        item["price"]=priceReg.exec(itemHtml)[1].trim();
    }
    return item;
}

function isNeedLogin(){
    var loginWin = document.getElementById("mg-mask");
    return (loginWin?true:false);
}

function isEmptyPage(){
    var empty = document.getElementById("J-shopping-cart-empty");
    return (empty?true:false);
}