Bilibili BigCover

查看B站封面大图

目前為 2018-08-08 提交的版本,檢視 最新版本

// ==UserScript==
// @name         Bilibili BigCover
// @namespace    http://tampermonkey.net/
// @version      1.0.0
// @description  查看B站封面大图
// @author       Mr.ZHAO
// @include      *://www.bilibili.com/video/av*
// @include      *://bangumi.bilibili.com/anime/*
// @include      *://www.bilibili.com/bangumi/*
// @require      https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js
// @require      https://cdn.bootcss.com/fancybox/3.3.5/jquery.fancybox.min.js
// @resource     fancyboxCss  https://cdn.bootcss.com/fancybox/3.3.5/jquery.fancybox.min.css
// @grant        GM_getResourceText
// @note         2018.08.08-v1.0.0 1.变更查看大图显示方式:不再弹出新标签页显示(部分浏览器会要求信任站点弹窗,所以摒弃掉),由当前页面弹层放大显示、2.新增下载及关闭按钮、3.按钮样式优化、
// ==/UserScript==

(function () {
    'use strict';

    // 1.添加弹窗样式表
    var fancyboxCss = GM_getResourceText("fancyboxCss");
    var cssNode = document.createElement("style");
    cssNode.setAttribute("type", "text/css");
    cssNode.setAttribute("name", "fancyboxCss");
    try{
        var buttonStyle = `a[data-fancybox="images"]{margin: auto 30px;line-height: 18px;font-size: 12px;}.count-wrapper>a[data-fancybox="images"]{color:#222}.count-wrapper>a[data-fancybox="images"]:hover{color: #00a1d6;}`;
        cssNode.textContent = buttonStyle + fancyboxCss;
        document.querySelector("head").appendChild(cssNode);
    } catch (e){console.log(e.message);}

    // 2.检测 jQuery 是否可用
    if (!window.jQuery) {
        // 若还未加载jQuery, 则监听
        (function waitForJquery(){
            if (!window.jQuery){
                setTimeout(waitForJquery, 100);
            } else appendCoverBtn();
        })();
    } else {
        appendCoverBtn();
    }

    // 3.添加大图按钮
    function appendCoverBtn() {
        var imageurl = null;
        if ($('meta[itemprop="image"]').length !== 0){
            imageurl = $('meta[itemprop="image"]').attr("content");
        }else if($('meta[property="og:image"]').length !== 0){
            imageurl = $('meta[property="og:image"]').attr("content");
        }

        imageurl = imageurl.replace(/http[s]?\:/,'');

        var appended = false;
        var coverBtn = $(`<a data-fancybox="images" href="${imageurl}"><span><i class="van-icon-info_playnumber"></i>&nbsp;查看封面大图</span></a>`);

        $(".count-wrapper,.video-info-m>.number,.video-data").bind('DOMSubtreeModified', function() {
            if(appended) return;
            appended = true;
            $(this).append(coverBtn);
            $("a[data-fancybox]").fancybox({
                buttons : ['download','close']
            });
        });

    }

})();