Greasy Fork

Greasy Fork is available in English.

阿里巴巴国际站产品辅助脚本

1. 添加【零效果产品页】复制及数据查看产品按钮 2. 添加【产品运营工作台页】产品编辑及数据查看按钮 3. 添加【产品分析页】编辑及数据查看按钮 4. 添加【产品详情页】编辑及数据查看按钮,修改图片链接为原图,添加显示产品关键词,添加视频链接与封面链接 5. 添加【图片银行页】直接下载原图按钮 6. 添加【关键词指数页】搜索按钮 7. 添加【产品关键词搜索页】显示公司名按钮(可能有BUG) 8. 显示阿里巴巴标签页名称 9. 【产品编辑页】增强

当前为 2021-12-01 提交的版本,查看 最新版本

// ==UserScript==
// @namespace  http://www.alibaba.com
// @author     Lepturus
// @version    0.0.5
// @name 阿里巴巴国际站产品辅助脚本
// @icon http://is.alicdn.com/favicon.ico
// @description  1. 添加【零效果产品页】复制及数据查看产品按钮 2. 添加【产品运营工作台页】产品编辑及数据查看按钮 3. 添加【产品分析页】编辑及数据查看按钮 4. 添加【产品详情页】编辑及数据查看按钮,修改图片链接为原图,添加显示产品关键词,添加视频链接与封面链接 5. 添加【图片银行页】直接下载原图按钮 6. 添加【关键词指数页】搜索按钮 7. 添加【产品关键词搜索页】显示公司名按钮(可能有BUG) 8. 显示阿里巴巴标签页名称 9. 【产品编辑页】增强
// @match *://p*.alibaba.com/*
// @match *://data.alibaba.com/*
// @match *.alibaba.com/trade/search*
// @match *.alibaba.com/product-detail*
// @match *://keywordIndex.alibaba.com/*
// @match *://photobank.alibaba.com/*
// @match *://post.alibaba.com/*
// @match *://hz-productposting.alibaba.com/*
// @match *.alibaba.com/product/*
// @grant GM_addStyle
// @updateUR     http://greasyfork.icu/zh-CN/scripts/430029
// @license      MIT
// ==/UserScript==

////**********************************************
//// 1. 添加【零效果产品页】复制和查看产品效果按钮
//// 2. 添加【产品运营工作台页】产品编辑及查看产品效果按钮
//// 3. 添加【产品分析页】编辑及查看产品分层按钮
//// 4. 添加【产品详情页】编辑查看产品效果按钮,修改图片链接为原图,添加显示产品关键词(点击关键词可复制),添加视频链接与封面链接
//// 5. 添加【图片银行页】直接下载原图按钮
//// 6. 添加【关键词指数页】搜索按钮
//// 7. 添加【产品关键词搜索页】显示公司名按钮(可能有BUG)
//// 8. 显示阿里巴巴标签页名称
//// 9. 【产品编辑页】增强, 添加关键词直接搜索按钮(原关键词的多语言编辑已下架)
////**********************************************
(function () {
    'use strict';
    GM_addStyle(
        ".switch{position:relative;width:50px;height:17px;display:inline-block} .switch input{display:none}.slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#ca2222;transition:.4s}.slider:before{position:absolute;content:'';height:13px;width:13px;left:2px;bottom:2px;background-color:#fff;transition:.4s}input:checked+.slider{background-color:#2ab934}input:checked+.slider:before{transform:translateX(28px)}.on{display:none}.off,.on{color:#fff;position:absolute;transform:translate(-50%,-50%);top:50%;left:50%;font-size:8px}input:checked+.slider .on{display:block} input:checked+.slider .off{display:none}.slider.round{border-radius:17px}.slider.round:before{border-radius:50%}"
    );

    // 工具函数 -- 添加元素属性
    function setAttributes(el, attrs) {
        for (let key in attrs) {
            el.setAttribute(key, attrs[key]);
        }
    }
    // 工具函数 -- 复制
    function copy(e){
        let obj =document.createElement('input');
        document.body.appendChild(obj);
        obj.value =e.textContent;
        obj.select();
        document.execCommand('copy', false);
        obj.remove();
    }
    // 添加零效果产品页复制产品按钮
    function productNEW() {
        let products = document.querySelectorAll('tbody>tr')
        let ln = products.length;
        // 非对不起,未能查询到符合您要求的产品,建议重新设置查询条件或者已经存在复制按钮
        if (!document.querySelector('tbody>tr').textContent.match("未能查询到") && !document.querySelector('tbody>tr').textContent
            .match("复制")) {
            for (let i = 0; i < ln; i++) {
                let product_info = products[i].querySelectorAll('.next-table-cell-wrapper'); // 表格每一行产品
                // console.log(product_info);
                let product_url = product_info[1].querySelector("a").href;
                let product_container = product_info[6].querySelector(".edit-delete-off"); // <span class="edit-delete-off">...
                let product_id = product_url.match(/_(\d+)\.htm(l)?/)[1]; // http://www.alibaba.com/product-detail//XXX_123456789.html?spm=a2... // 产品ID
                let product_newURL =
                    "https://post.alibaba.com/product/publish.htm?spm=a2747.manage.0.0.8e9071d2H60Rr7&pubType=similarPost&itemId=" +
                    product_id + "&behavior=copyNew";
                let product_HTML = document.createElement("span");
                product_HTML.innerHTML =
                    `<a href="${product_newURL}" target="_blank" behavior="copyToNewProduct"><br/>复制</a>&nbsp;&nbsp;
         <a href="//hz-productposting.alibaba.com/product/manage_products.htm?#/product/all/1-10/productId=${product_id}" target="_blank">数据</a>&nbsp;&nbsp;&nbsp;
         <a href="https://data.alibaba.com/product/overview?prodId=${product_id}" target="_blank">效果</a>`;
                if (!product_container.textContent.match("数据")) { // 动态加载fix
                    product_container.appendChild(product_HTML);
                }
            }
            console.log("零效果产品页复制按钮添加成功!!!");
        }
    }

    // 添加产品运营工作台产品编辑按钮
    function productEdit() {
        let products, products_cell;
        if (document.querySelector('.upgrade-products-article-item')){
            products_cell = '.upgrade-products-article-item';
            products = document.querySelectorAll(products_cell);
        }else{
            products_cell = '.upgrade-products-grid-record';
            products = document.querySelectorAll(products_cell);
        }
        let ln = products.length;
        // 非已经存在编辑按钮
        if (ln && !document.querySelector(products_cell).textContent.match("编辑")) {
            for (let i = 0; i < ln; i++) {
                let product_title = products[i].querySelector(".product-subject").title;
                let product_container = products[i].querySelector(".product-id");
                let product_id = product_container.textContent.match(/\d+/)[0]; // 产品ID
                // console.log(product_title, product_id);
                let product_href =
                    `<a href="//post.alibaba.com/product/publish.htm?spm=a2747.manage.0.0.77fb71d2zK7Jvr&itemId=${product_id}" target="_blank"><br/>编辑</a>
        <a href="//hz-productposting.alibaba.com/product/manage_products.htm?#/product/all/1-10/productId=${product_id}" target="_blank"> 数据</a>
        <a href="https://data.alibaba.com/product/overview?prodId=${product_id}" target="_blank">效果明细</a>`
                if (!product_container.textContent.match("编辑")) { // 动态加载fix
                    product_container.innerHTML += product_href;
                }
            }
            console.log("添加产品运营工作台产品编辑按钮成功!!!");
        }
    }

    // 添加产品分析页面按钮
    function productAnalyse() {
        let products = document.querySelectorAll('tbody>tr')
        let ln = products.length;
        // 非已经存在产品分层按钮
        if (ln && !document.querySelector('tbody>tr:last-child').textContent.match("分层")) {
            for (let i = 0; i < ln; i++) {
                let product_title = products[i].querySelector(".media-content").textContent;
                let product_url = products[i].querySelector(".custom-td-content>a").href;
                let product_id = product_url.match(/_(\d+)\.htm(l)?/)[1]; // 产品ID
                // console.log(product_title, product_id);
                let product_newURL =
                    "https://post.alibaba.com/product/publish.htm?spm=a2747.manage.0.0.8e9071d2H60Rr7&pubType=similarPost&itemId=" +
                    product_id + "&behavior=copyNew";
                let product_href =
                    `<br><a class="action-enabled TEST" href="${product_newURL}" target="_blank" behavior="copyToNewProduct">复制</a><br>
        <a class="action-enabled TEST" href="//hz-productposting.alibaba.com/product/manage_products.htm?#/product/all/1-10/productId=${product_id}" target="_blank">分层</a>`;
                // 非产品不可编辑状态
                if (products[i].querySelector(".action-enabled")) {
                    let product_container = products[i].querySelector(".action-enabled").parentElement; // 插入span 编辑 ...
                    if (!product_container.textContent.match("分层")) { // fix动态加载js,指选择日期产品后排序会重复添加的
                        product_container.innerHTML += product_href;
                    }
                }
                // product_container.parentNode.insertBefore(document.createElement("br"), product_container.nextSibling);
                // document.querySelector('col:last-child').style.setProperty("width", "180px", "important"); // 设置表格最后一栏宽度
            }
            console.log("添加产品分析页面按钮成功!!!");
        }
    }

    // 添加产品页按钮
    function productDetail() {
        let product_id;
        if (!document.querySelector('.detail-title-section .product_keywords')) {
            if (document.querySelector(".module-pdp-title")){
            let product_title = document.querySelector(".module-pdp-title").textContent;
            console.log(product_title);
            if (/\/product\//.test(document.URL)){
              product_id = document.URL.match(/(\d+)-(\d+)/)[1];; // 产品ID
            }else if(/chinese\.alibaba/.test(document.URL)){
              product_id = document.URL.match(/-(\d+)\.htm(l)?/)[1]; // 中文网页产品ID
            } else {
              product_id = document.URL.match(/_(\d+)\.htm(l)?/)[1]; // 产品ID
            }

            // 产品标题 - Buy () on Alibaba.com
            let product_keywords = document.title.match(/- Buy (.*) Product/)[1]; // 产品关键词
            let product_keywords_html = product_keywords.split(",").map(item => (
                `<br/><i class="next-icon next-icon-success next-icon-xs" style="margin-right:5px;"></i><span class="product_keyword">${item}</span>`
            )).join("");
            // overwriting the innerHTML is not a good idea indeed, will gone event listener so using appendChild here.
            let product_html = document.createElement("div");
            product_html.innerHTML =
                `<p style="color:#ff6a00" class="product_keywords">${product_keywords_html}</p>`;
            document.querySelector(".module-pdp-title").parentElement.appendChild(product_html);
            let kws = document.getElementsByClassName("product_keyword");
            for (let i = 0; i < kws.length; i++) {
                    kws[i].onclick = function () {
                        copy(kws[i]);
                    }
             }
            console.log("添加产品分析页面按钮成功!!!");
            document.querySelectorAll(".main-image-thumb-item img").forEach(v => (v.src = v.src.replace(
                /_50x50\.(jpg|png)/, ""))); // 修改图片轮播链接为原图
            }
        }
        // 动态加载
        window.addEventListener('load', function() {
            if (document.querySelector(".details-user-actions")) {
            let container = document.querySelector(".details-user-actions");
             let product_tool = document.createElement("span");
             if (document.querySelector('.image-slider video')){
                if (!document.querySelector('.details-user-actions').textContent.match("视频")) {
                    let video_link = document.querySelector('video').src; // 产品视频链接
                    let video_poster = document.querySelector('video').poster; // 产品视频封面链接
                    let video_html =
                        `<a href="${video_link}" target="_blank">视频链接 </a><a href="${video_poster}" target="_blank">视频封面</a>`
                    product_tool.innerHTML = video_html;
            }
        }
            
            let product_edit_style = document.querySelector(".is-magic")?"智能编辑":document.querySelector("#J-rich-text-description>div:only-child")?"旧版智能编辑":"普通编辑";
            product_tool.innerHTML += `<br/>${product_edit_style}&nbsp;&nbsp;<a href="//post.alibaba.com/product/publish.htm?spm=a2747.manage.0.0.77fb71d2zK7Jvr&itemId=${product_id}" target="_blank">编辑</a>&nbsp;&nbsp;
        <a href="//hz-productposting.alibaba.com/product/manage_products.htm?#/product/all/1-10/productId=${product_id}" target="_blank">数据</a>
        &nbsp;&nbsp;<a href="https://data.alibaba.com/product/overview?prodId=${product_id}" target="_blank">效果明细</a>
        &nbsp;&nbsp;<a href="https://post.alibaba.com/product/publish.htm?spm=a2747.manage.0.0.8e9071d2H60Rr7&pubType=similarPost&itemId=${product_id}" target="_blank" behavior="copyToNewProduct">复制</a>`;
           if (!document.querySelector('.details-user-actions').textContent.match("数据")) {
           container.appendChild(product_tool);
           }
        }})
    }

    // 添加图片银行直接下载原图按钮
    function productPhoto() {
        let products = document.querySelectorAll('.photo-grid-item') // 获取图片容器
        let ln = products.length;
        // 非已存在下载原图链接按钮
        if (!document.querySelector('.image-info').textContent.match("下载原图")) {
            for (let i = 0; i < ln; i++) {
                let product_src = products[i].querySelector(".photo-grid-img-wrapper img").src; // 获取图片链接
                let product_picforamt = product_src.match(/_350x350\.(jpg|png)/)[1];
                let product_picLink = product_src.replace(/_350x350\.(jpg|png)/, "");
                let product_picName = products[i].querySelector(".display-name button").textContent; // 获取图片文件名
                let product_picContainer = products[i].querySelector(".image-info");
                let product_picHTML = document.createElement("a");
                setAttributes(product_picHTML, {
                    "href": `${product_picLink}?attachment=${product_picName}.${product_picforamt}`,
                    "target": "_blank",
                    "rel": "noopener noreferrer"
                });
                product_picHTML.innerHTML = "下载原图";
                product_picContainer.appendChild(product_picHTML);
            }
            // console.log("添加图片银行直接下载原图按钮成功!");
        }
    }

    //添加关键词指数页搜索按钮
    function productKeywordIndex() {
        let keywords = document.querySelectorAll('.next-table-row');
        let ln = keywords.length;
        // 非已经存在搜索按钮
        if (ln && !document.querySelector('.next-table-row a i')) {
            for (let i = 0; i < ln; i++) {
                let kws_container = keywords[i].querySelectorAll(".next-table-cell-wrapper")[1].querySelector(
                    "span");
                let kw = kws_container.querySelector("a").textContent;
                let alibaba_link = document.createElement("a");
                setAttributes(alibaba_link, {
                    "href": `https://www.alibaba.com/products/${kw}.html?viewtype=G`,
                    "target": "_blank",
                    "rel": "noopener noreferrer",
                    "title": "在阿里巴巴搜索"
                });
                alibaba_link.innerHTML =
                    ` <i class="next-icon next-icon-search next-small next-search-icon"></i>`;
                let product_link = document.createElement("a");
                setAttributes(product_link, {
                    "href": `https://hz-productposting.alibaba.com/product/manage_products.htm?#/product/all/1-10/productKeyword=${kw}`,
                    "target": "_blank",
                    "rel": "noopener noreferrer",
                    "title": "在发布产品列表搜索"
                });
                product_link.innerHTML =
                    ` <i class="next-icon next-icon-search next-small next-search-icon"></i>`;
                if (!kws_container.querySelector('.next-table-row a i')) { // 动态加载fix
                    kws_container.appendChild(alibaba_link);
                    kws_container.appendChild(product_link);
                }
            }
            console.log("添加关键词指数页搜索按钮成功!!!");
        }
    }

    // 产品编辑页增强
    function productPublish(){
      let product_keywords;
      product_keywords = document.querySelectorAll(".posting-field-keywords li");
      function alibaba_link(kw){
          let kw_search_link = document.createElement("a");
          setAttributes(kw_search_link, {
              "href": `https://www.alibaba.com/products/${kw}.html?viewtype=G`,
              "target": "_blank",
              "rel": "noopener noreferrer",
              "title": "在阿里巴巴搜索",
              "class": "alibaba_search",
          });
          kw_search_link.innerHTML = `<i class="next-icon next-icon-search next-small next-search-icon"></i>`;
          return kw_search_link;
      }
        for (let i = 0; i < product_keywords.length; i++) {
            let kw_container = product_keywords[i].querySelector(".next-input-control");
            kw_container.appendChild(alibaba_link(product_keywords[i].querySelector("input").value));
            product_keywords[i].querySelector("input").addEventListener('change',function (e) {
               kw_container.replaceChild(alibaba_link(this.value),kw_container.querySelector('.alibaba_search'));
            });
      }
    }


    // 搜索关键词显示公司名
    function productSupplierDisplay() {
        let products;
        if(document.querySelector('.seb-refine-ctb__viewtype>a').classList.contains('active')){
          products = document.querySelectorAll('.app-organic-search__list>div.J-offer-wrapper');
        }else{
          products = document.querySelectorAll('.organic-gallery-offer-outter');
        }
        let ln = products.length;

        function fireMouseEvents(element, eventNames) {
            if (element && eventNames && eventNames.length) {
                for (let index in eventNames) {
                    let eventName = eventNames[index];
                    if (element.fireEvent) {
                        element.fireEvent('on' + eventName);
                    } else {
                        let eventObject = document.createEvent('MouseEvents');
                        eventObject.initEvent(eventName, true, false);
                        element.dispatchEvent(eventObject);
                    }
                }
            }
        }
        for (let i = 0; i < ln; i++) {
            let supplier_container;
            // 视图切换按钮
            if(document.querySelector('.seb-refine-ctb__viewtype>a').classList.contains('active')){
               supplier_container = products[i].querySelector(".list-no-v2-decisionsup__row");
            }else{
               supplier_container = products[i].querySelector(".organic-gallery-offer_bottom-align-section");
            }

            if (supplier_container && document.getElementById("d_switch").checked) {
                if (products[i].querySelector('.gallery-theme-card-default__image-ctn') || products[i].querySelector('.offer-theme-search')) {
                    continue; // 跳过广告位Discover Now
                } else {
                    if (!products[i].querySelector(".alisupplier_name")) {
                        let product_link = products[i].querySelector('a').href; // 获取产品链接
                        let product_title = products[i].querySelector('.elements-title-normal').textContent; // 获取产品名
                        // 控制台输出产品标题 测试使用
                        //console.log(i, product_title);
                        let product_inq,supplier_link;
                        if(document.querySelector('.seb-refine-ctb__viewtype>a').classList.contains('active')){
                        product_inq= products[i].querySelector('.contact-supplier-btn').href;
                        supplier_link = products[i].querySelector('.list-no-v2-decisionsup__row>span a').href;
                        fireMouseEvents(products[i].querySelector(".list-no-v2-decisionsup__row>span a"), ['mouseover','mousedown']); // 触发鼠标显示供应商信息
                        }else{
                        product_inq= products[i].querySelector('.organic-gallery-offer__bottom-v2 a').href; // 获取产品询盘链接
                        supplier_link = products[i].querySelector(".organic-gallery-offer__seller-company").href; // 获取供应商链接
                        fireMouseEvents(products[i].querySelector(".organic-gallery-offer__seller-company"), ['mouseover','mousedown']); // 触发鼠标显示供应商信息
                        }
                        let link = document.createElement("a");
                        setAttributes(link, {
                            "href": `${supplier_link}`,
                            "target": "_blank",
                            "class": "alisupplier_name",
                        });
                        // 采集到弹出供应商信息
                        if (document.querySelector(".next-overlay-wrapper .supplier-tag-popup__content_href")) {
                            link.innerHTML = document.querySelector(
                                ".next-overlay-wrapper .supplier-tag-popup__content_href").textContent;
                            supplier_container.appendChild(link);
                            let supplier_opener = document.querySelector(".next-balloon-normal");
                            supplier_opener.parentNode.removeChild(supplier_opener);
                        }
                    }
                }
            }
        }

    }
    // 显示阿里巴巴标签页名称
    window.addEventListener('load', function() {
        let title_list = [".sc-hd-m-logo-anchor",".av-change-container-title",".auth-cent-list-container-title",".product-task-title-name",".top-bar-name",
                          ".home-header>.home-header-title", ".rank-header-title",".next-card-title",".next-feedback-title",
                          ".freight-template-app-title",".showcase-zh>.fs22",".inquiry-list-title",".common-h1",".title-wrapper>h1",".live-manage-management-title>h3",
                          ".home-header-title",".big-title","h2.page-title>span",".next-tabs-tab-inner>div",".bp2-nav-bar>div",".component-page-title",".header-title",".page-title>h3",
                          ".diagnosis-h3",".collect-products-list h1",".CGS_BASIC .page-title","h2.sub-title",
                          ".title",".title-text",".photo-header-title","h1",".page-title",".manage-title",".ui-header-extend","h2","h3"];
        for (let i = 0; i < title_list.length; i++) {
            if(!/(w{3}|i|fundma|onetouch|waimaoquan|activity|alicrm|marketing|siteadmin|customize|offer)\.alibaba\.com/.test(document.URL)){
                if(document.querySelector(title_list[i])){
                    console.log(title_list[i],document.querySelector(title_list[i]));
                    document.title = document.querySelector(title_list[i]).textContent;
                    break;
            }}
        }
    }, false);

    if (/product_grow_up_manage/.test(document.URL)) {
        setInterval(productEdit, 2500);
        // 添加产品运营工作台产品编辑按钮
    } else if (/ineffective/.test(document.URL)) {
        setInterval(productNEW, 2500);
        // 添加零效果产品页复制产品按钮
    } else if (/overview/.test(document.URL)) {
        setInterval(productAnalyse, 2500);
        // 添加产品分析页面按钮
    } else if (/(product-detail)|(\/product\/\d+-\d+)/.test(document.URL)) {
         setInterval(productDetail, 2500);
        // 添加产品详情页按钮
    } else if (/photobank/.test(document.URL)) {
        setInterval(productPhoto, 2500);
        // 添加图片银行直接下载原图按钮
    } else if (/keywordIndex/.test(document.URL)) {
        setInterval(productKeywordIndex, 2500);
        // 添加关键词指数页搜索按钮
    } else if (/(trade\/search)|(\/products\/)/.test(document.URL)) {
        // 添加搜索关键词显示公司名按钮
        if (document.getElementsByClassName('refine-filters__result-left')) {
            let dswitch = document.createElement('label');
            dswitch.innerHTML =
                "<input id='d_switch' type='checkbox'><div class='slider round'><span class='on'>ON</span><span class='off'>OFF</span></div>";
            dswitch.setAttribute('class', 'switch');
            document.getElementsByClassName('refine-filters__result-left')[0].appendChild(dswitch);
        }
        setInterval(productSupplierDisplay, 2500);
    } else if(/post\.alibaba/ig.test(document.URL)){
        window.addEventListener('load', productPublish(), false);
    }
})();