Greasy Fork is available in English.
1. 添加【零效果产品页】复制及数据查看产品按钮 2. 添加【产品运营工作台页】产品编辑及数据查看按钮 3. 添加【产品分析页】编辑及数据查看按钮 4. 添加【产品详情页】编辑及数据查看按钮,修改图片链接为原图,添加显示产品关键词,添加视频链接与封面链接 5. 添加【图片银行页】直接下载原图按钮,
当前为
// ==UserScript==
// @namespace http://www.alibaba.com
// @author Lepturus
// @version 0.0.2
// @name 阿里巴巴国际站产品辅助脚本
// @icon http://is.alicdn.com/favicon.ico//
// @description 1. 添加【零效果产品页】复制及数据查看产品按钮 2. 添加【产品运营工作台页】产品编辑及数据查看按钮 3. 添加【产品分析页】编辑及数据查看按钮 4. 添加【产品详情页】编辑及数据查看按钮,修改图片链接为原图,添加显示产品关键词,添加视频链接与封面链接 5. 添加【图片银行页】直接下载原图按钮,
// @match *://hz-productposting.alibaba.com/product/product_grow_up_manage.htm*
// @match *://hz-productposting.alibaba.com/product/products_manage.htm*
// @match *://data.alibaba.com/product/ineffective*
// @match *://photobank.alibaba.com/home/index.htm*
// @match *://data.alibaba.com/product/overview*
// @match *://www.alibaba.com/product-detail/*
// @grant GM_addStyle
// ==/UserScript==
(function () {
'use strict';
// 工具函数 -- 添加元素属性
function setAttributes(el, attrs) {
for (var key in attrs) {
el.setAttribute(key, attrs[key]);
}
}
// 添加零效果产品页复制产品按钮
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 (var i = 0; i < ln; i++) {
var product_info = products[i].querySelectorAll('.next-table-cell-wrapper'); // 表格每一行产品
// console.log(product_info);
var product_url = product_info[1].querySelector("a").href;
var product_container = product_info[6].querySelector(".edit-delete-off"); // <span class="edit-delete-off">...
var product_id = product_url.match(/_(\d+)\.htm(l)?/)[1]; // http://www.alibaba.com/product-detail//XXX_123456789.html?spm=a2... // 产品ID
var 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>
<a href="//hz-productposting.alibaba.com/product/manage_products.htm?#/product/all/1-10/productId=${product_id}" target="_blank">数据</a>`;
if (!product_container.textContent.match("数据")) { // 动态加载fix
product_container.appendChild(product_HTML);
}
}
console.log("零效果产品页复制按钮添加成功!!!");
}
}
// 添加产品运营工作台产品编辑按钮
function productEdit() {
let products = document.querySelectorAll('.upgrade-products-article-item')
let ln = products.length;
// 非已经存在编辑按钮
if (ln && !document.querySelector('.upgrade-products-article-item').textContent.match("编辑")) {
for (var i = 0; i < ln; i++) {
var product_title = products[i].querySelector(".product-subject").title;
var product_container = products[i].querySelector(".product-id");
var product_id = product_container.textContent.match(/\d+/)[0]; // 产品ID
// console.log(product_title, product_id);
var 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>`
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 (var i = 0; i < ln; i++) {
var product_title = products[i].querySelector(".media-content").textContent;
var product_url = products[i].querySelector(".custom-td-content>a").href;
var product_id = product_url.match(/_(\d+)\.htm(l)?/)[1]; // 产品ID
// console.log(product_title, product_id);
var product_newURL =
"https://post.alibaba.com/product/publish.htm?spm=a2747.manage.0.0.8e9071d2H60Rr7&pubType=similarPost&itemId=" +
product_id + "&behavior=copyNew";
var 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")) {
var 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() {
if (!document.querySelector('.detail-title-section').textContent.match("编辑")) {
var product_title = document.querySelector(".module-pdp-title").textContent;
var product_id = document.URL.match(/_(\d+)\.htm(l)?/)[1]; // 产品ID
var product_keywords = document.title.match(/- Buy (.*) Product/)[1]; // 产品关键词
var product_keywords_html = product_keywords.split(",").map(item => (
`<br/><i class="next-icon next-icon-success next-icon-xs" style="margin-right:5px;"></i>${item}`
)).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 =
`<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>
<p style="color:#ff6a00">${product_keywords_html}</p>`
document.querySelector(".module-pdp-title").parentElement.appendChild(product_html);
console.log("添加产品分析页面按钮成功!!!");
document.querySelectorAll(".main-image-thumb-item img").forEach(v => (v.src = v.src.replace(
/_50x50\.(jpg|png)/, ""))); // 修改图片轮播链接为原图
}
if (document.querySelector('.image-slider video') && document.querySelector(".details-user-actions")) {
if (!document.querySelector('.details-user-actions').textContent.match("视频")) {
var container = document.querySelector(".details-user-actions");
var video_link = document.querySelector('video').src; // 产品视频链接
var video_poster = document.querySelector('video').poster; // 产品视频封面链接
var video_html =
`<a href="${video_link}" target="_blank">视频链接 </a><a href="${video_poster}" target="_blank">视频封面</a>`
container.innerHTML += video_html;
}
}
}
// 添加图片银行直接下载原图按钮
function productPhoto() {
let products = document.querySelectorAll('.photo-grid-item') // 获取图片容器
let ln = products.length;
// 非已存在下载原图链接按钮
if (!document.querySelector('.image-info').textContent.match("下载原图")) {
for (var 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("添加图片银行直接下载原图按钮成功!");
}
}
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/.test(document.URL)) {
setInterval(productDetail, 2500);
// 添加产品详情页按钮
} else if (/photobank/.test(document.URL)) {
setInterval(productPhoto, 2500);
// 添加图片银行直接下载原图按钮
}
})();