您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
View office documents in your browser with Microsoft Office Online
// ==UserScript== // @name office_online_viewer // @description View office documents in your browser with Microsoft Office Online // @namespace liudonghua123 // @version 0.0.1 // @include * // @exclude http*://view.officeapps.live.com/* // @exclude http*://docs.google.com/* // @exclude http*://mail.google.com/* // @exclude http*://viewer.zoho.com/* // @exclude http*://office.live.com/* // ==/UserScript== (function process() { const pageLinks = [...document.links]; const officeWordExtension = ["doc", "docx"], officeExcelExtension = ["xls", "xlsx"], officePowerpointExtension = ["ppt", "pps", "pptx"]; const officeExtension = [...officeWordExtension, ...officeExcelExtension, ...officePowerpointExtension]; const viewOfficeUrl = "https://view.officeapps.live.com/op/view.aspx"; const isOfficeLink = (link) => { const { pathname: path, text } = link; const pathExtension = path.lastIndexOf('.') > 0 ? path.substr(path.lastIndexOf('.') + 1).toLowerCase() : ''; const textExtension = text.lastIndexOf('.') > 0 ? text.substr(text.lastIndexOf('.') + 1).toLowerCase() : ''; return officeExtension.includes(pathExtension) || officeExtension.includes(textExtension); }; const linkIcon = (link) => { const { pathname: path, text } = link; const pathExtension = path.lastIndexOf('.') > 0 ? path.substr(path.lastIndexOf('.') + 1).toLowerCase() : ''; const textExtension = text.lastIndexOf('.') > 0 ? text.substr(text.lastIndexOf('.') + 1).toLowerCase() : ''; if (officeWordExtension.includes(pathExtension) || officeWordExtension.includes(textExtension)) return "https://docs.microsoft.com/zh-cn/javascript/api/overview/images/logo-word.svg"; else if (officeExcelExtension.includes(pathExtension) || officeExcelExtension.includes(textExtension)) return "https://docs.microsoft.com/zh-cn/javascript/api/overview/images/logo-excel.svg"; else if (officePowerpointExtension.includes(pathExtension) || officePowerpointExtension.includes(textExtension)) return "https://docs.microsoft.com/zh-cn/javascript/api/overview/images/logo-powerpoint.svg"; else return ''; }; const addOfficeBadge = (link) => { const officeLink = document.createElement('a'); officeLink.href = `${viewOfficeUrl}?src=${encodeURIComponent(link.href)}`; officeLink.isParsed = true; officeLink.target = "_blank"; const ico = document.createElement("img"); ico.src = linkIcon(link); ico.style.marginLeft = "5px"; ico.style.height = "25px"; officeLink.appendChild(ico); link.parentNode.insertBefore(officeLink, link.nextSibling); } const officeLinks = pageLinks.filter(isOfficeLink); for (const link of officeLinks) { console.info(`process ${link.href}`); addOfficeBadge(link); } })();