编辑代码

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 items=[];
            var info={};
            items.push(info);
            var empty_json=JSON.stringify(items);
            window.webkit.messageHandlers.empty.postMessage(empty_json);
            return;
        }else{
            currentTimes++;
        }
    }

    var items = getDatas();
    if(items) {
        currentTimes = 0;
        window.webkit.messageHandlers.data.postMessage(items);
    }
}

function getDatas(){
    for (var tbc_data = [], index = 1, div_items = document.getElementsByTagName("div"), i = 0; i < div_items.length; i++) {
        var div_item = div_items[i],item_id = div_item.id,regx = new RegExp("^group_", "i");
        if (regx.test(item_id)) {
            var item = div_item.$$instance;
            for (var k in item) if ("props" == k) {
                var item_child = item.props.children, child_array = [];
                if (item_child) {
                    if (Array.isArray(item_child)) for (var m = 0; m < item_child.length; m++) child_array.push(item_child[m].props.data.fields);
                    else child_array.push(item.props.children.props.data.fields);
                    for (var n = 0; n < child_array.length; n++) {
                        var sub_data = {},
                        single_item = child_array[n];
                        if (!single_item.tbdone) for (var j in single_item)"itemId" == j && (sub_data.sku = single_item[j]),
                        "title" == j && (sub_data.title = single_item[j]),
                        "pic" == j && (sub_data.pic = single_item[j]),
                        "pay" == j && (sub_data.price = single_item[j].afterPromPrice),
                        "sku" == j && (sub_data.sku_id = single_item[j].skuId),
                        "cartId" == j && (sub_data.cart_id = single_item[j]),
                        "quantity" == j && (sub_data.quantity = single_item[j]);
                        sub_data.hasOwnProperty("sku") && (sub_data.index = index, tbc_data.push(sub_data), single_item.tbdone = 1),
                        index += 1
                    }
                }
            }
        }
    }
    var tbc_data_json = JSON.stringify(tbc_data)
    return tbc_data_json;
}

function isNeedLogin(){
    var login = document.getElementsByTagName("iframe")[0];
    if(login && login.hasAttribute("src")){
        var src = login.getAttribute("src");
        if(src.search("login.m.taobao.com")) {
            return true;
        }
    }
    if(document.getElementById("login")){
        return true;
    }
    return false;
}

function isEmptyPage(){
    var empty = document.getElementsByClassName("search-empty");
    return (empty.length>0?true:false);
}

function crawNext(){
    window.scrollTo(0, document.documentElement.scrollHeight);
}