Greasy Fork is available in English.

Ebay Seller Assistant

Optimize Ebay function to make it more convenient (support ebay.com.hk domain name)

Fra 28.10.2018. Se den seneste versjonen.

// ==UserScript==
// @name                 Ebay Seller Assistant
// @name:zh-CN           Ebay卖家助手
// @author               Antecer
// @version              2.0
// @description          Optimize Ebay function to make it more convenient (support ebay.com.hk domain name)
// @description:zh-CN    优化Ebay功能使其更方便(支持 ebay.com.hk 域名)
// @namespace            https://greasyfork.org/zh-CN/users/42351
// @grant                GM_setValue
// @grant                GM_getValue
// @grant                GM_xmlhttpRequest
// @grant                GM_registerMenuCommand
// @include              http*://*.ebay.com.hk/*
// @run-at               document-end
// @compatible           chrome 测试通过
// ==/UserScript==

// 验证网址是否包含某字符串
function UrlExp(textStr) {
    return RegExp(textStr).test(window.location.href);
}
// 创建选择器的简化写法
function dQuery(selector) {
    return document.querySelector(selector);
}
function dQueryAll(selector) {
    return document.querySelectorAll(selector);
}
// 出售记录页面功能优化
if (UrlExp(/(MyeBayNextSold|MyeBayAllSelling|MyeBayNextAllSelling)/)) {
    // 修改订单处理菜单(将查看订单信息和添加备注直接显示,不用点击下拉菜单)
    dQueryAll('#ItemDisplayContainer_SoldNext #mT').forEach((item, index, arr) => {
        let Transactions = item.querySelector('td').id.split('Transactions.')[1].split('_');
        let itemid = Transactions[0];
        let transId = Transactions[1];
        // 显示“檢視訂單詳細資料”菜单
        let paymentStatus = document.createElement('tr');
        paymentStatus.innerHTML = `<td>${dQuery('#hdn_al_241_pdm_js a[href*=VPS]').outerHTML.replace('#TID#', transId).replace('_Item_Id', itemid)}</td>`;
        item.parentNode.appendChild(paymentStatus);
        // 显示“新增备注/修改备注”菜单
        let remark = document.createElement('tr');
        remark.innerHTML = `<td>${dQueryAll('#hdn_al_241_pdm_js a[onclick*=ADDN]')[index].outerHTML.replace(/_Item_Id_\d+/g, itemid + '_' + transId).replace('_Item_Id_', itemid)}</td>`;
        item.parentNode.appendChild(remark);
        // 显示收件人信息
        let paymenAddr = document.createElement('tr');
        paymenAddr.innerHTML = `<td><div id=${transId}></div></td>`;
        item.parentNode.appendChild(paymenAddr);
        // 抓取订单详细资料,提取物品运送地址信息(暂时仅支持ebay香港站)
        let getPaymentUrl = paymentStatus.querySelector('a').href + '&getPaymentAddress';
        if (document.domain == 'my.ebay.com.hk') {
            GM_xmlhttpRequest({
                method: "GET",
                url: getPaymentUrl,
                onload: function (request) {
                    let reqDom = document.createElement('div');
                    reqDom.innerHTML = request.responseText;
                    paymenAddr.innerHTML = `<td><div id=${transId}>${reqDom.querySelector('#addrrow').innerHTML}</div></td>`;
                }
            });
        }
    });
    // 修改运单追踪功能 (使用17Track代替,追踪功能更强大)
    let trackAPI = '//www.17track.net/en/externalcall?resultDetailsH=356&fc=0&nums=';
    let _17Track = document.createElement('div');
    _17Track.id = 'trackBox';
    _17Track.innerHTML = '<style type="text/css">#trackBoxClose{text-decoration: none;position: absolute; right: 0px; top: 0px; width: 55px; height: 55px; line-height: 55px; background: #7FB0B0B0; color: #FFFFFFFF; font-size: 48px; text-align: center; font-family: Arial, Helvetica, sans-senif; z-index: 100; cursor: pointer;} #trackBoxClose:hover{ background:black;}</style><a id="trackBoxClose">×</a><iframe id="tracker" name="tracker" src="" frameborder="0" scrolling="no" height="600" width="600"></iframe>';
    _17Track.style.cssText = 'display:none;z-index:99999;position:absolute;left:-999;top:-999;width:600px;height:589px;box-shadow:rgba(0, 0, 0, 0.28) 0px 1px 1px 1px;';
    _17Track.addEventListener('click', (event) => {
        if (event.target.tagName == 'A') { _17Track.style.display = 'none'; }
    });
    dQuery('body').appendChild(_17Track);
    dQueryAll('[id^=track] [href^=javascript]').forEach((item) => {
        // 隐藏Paypal自带追踪功能
        item.style.display = 'none';
        // 创建17Track追踪元素
        let tracker = document.createElement('a');
        tracker.style.cursor = 'pointer';
        tracker.title = '17Track';
        tracker.innerHTML = item.innerHTML;
        item.parentNode.insertBefore(tracker, item);
    });
    dQuery('#ItemDisplayContainer_SoldNext').addEventListener('click', (event) => {
        if (event.path[0].title == '17Track') {
            _17Track.querySelector('#tracker').src = trackAPI + event.path[0].innerHTML;
            _17Track.style.left = event.pageX + 'px';
            _17Track.style.top = event.pageY + 'px';
            _17Track.style.display = 'block';
        }
    });
}