Office Files Online Preview

Automatically convert Office file links to Office Online Preview

您需要先安裝使用者腳本管理器擴展,如 TampermonkeyGreasemonkeyViolentmonkey 之後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyUserscripts 後才能安裝該腳本。

你需要先安裝一款使用者腳本管理器擴展,比如 Tampermonkey,才能安裝此腳本

您需要先安裝使用者腳本管理器擴充功能後才能安裝該腳本。

(我已經安裝了使用者腳本管理器,讓我安裝!)

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

(我已經安裝了使用者樣式管理器,讓我安裝!)

// ==UserScript==
// @name                Office Files Online Preview
// @name:zh-CN          Office 文件在线预览(支持Excel、Word、PowerPoint等格式)
// @name:ja             Officeファイルオンラインプレビュー
// @name:ru             Онлайн предварительный просмотр файлов Office
// @author              scavin
// @namespace           https://github.com/scavin
// @supportURL          https://meta.appinn.net/t/topic/64140
// @homepage            https://www.appinn.com
// @version             0.2.2
// @description         Automatically convert Office file links to Office Online Preview
// @description:zh-CN   自动将Office文件链接转换为Office Online预览,支持Excel、Word、PowerPoint等格式
// @description:ja      Officeファイルリンクを自動的にOffice Onlineプレビューに変換します
// @description:ru      Автоматическое преобразование ссылок на файлы Office для предварительного просмотра в Office Online
// @icon                data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI2NCIgaGVpZ2h0PSI2NCIgdmlld0JveD0iMCAwIDY0IDY0Ij4KICA8cmVjdCB4PSI4IiB5PSI4IiB3aWR0aD0iNDgiIGhlaWdodD0iNDgiIGZpbGw9IiMyMTk2NTMiIHJ4PSI2Ii8+CiAgPHRleHQgeD0iMzIiIHk9IjM2IiBmb250LWZhbWlseT0iQXJpYWwiIGZvbnQtc2l6ZT0iMjAiIGZpbGw9IndoaXRlIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIj5YTFM8L3RleHQ+CiAgPHBhdGggZD0iTTMyIDQ0QzM2IDQ0IDM5IDQ4IDM5IDUyQzM5IDU2IDM2IDU4IDMyIDU4QzI4IDU4IDI1IDU2IDI1IDUyQzI1IDQ4IDI4IDQ0IDMyIDQ0WiIgZmlsbD0id2hpdGUiLz4KPC9zdmc+
// @match               *://*/*
// @grant               none
// ==/UserScript==

(function() {
    'use strict';

    document.addEventListener('click', function(e) {
        if (e.target.tagName === 'A') {
            let href = e.target.href;
            // 确保获取完整的URL
            let fullUrl = new URL(href, window.location.href).href;

            if (fullUrl.match(/\.(xlsx?|docx?|pptx?)$/i)) {
                e.preventDefault();
                // 使用encodeURI而不是encodeURIComponent来保留URL结构
                let previewUrl = 'https://view.officeapps.live.com/op/view.aspx?src=' + encodeURI(fullUrl);
                window.open(previewUrl, '_blank');
            }
        }
    });
})();