Greasy Fork

Bilibili 哔哩哔哩阻止动态点击正文跳转

阻止动态点击正文跳转动态页面

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

// ==UserScript==
// @name         Bilibili 哔哩哔哩阻止动态点击正文跳转
// @icon         https://t.bilibili.com/favicon.ico
// @namespace    https://lolicon.app/
// @version      1.1.0
// @description  阻止动态点击正文跳转动态页面
// @author       Jindai Kirin
// @match        https://t.bilibili.com/*
// @match        https://space.bilibili.com/*
// @license      MIT
// @grant        GM_addStyle
// ==/UserScript==

(function () {
    'use strict';

    GM_addStyle('.description.active{cursor:unset!important}.up-info-tip:hover{color:#ff85ad!important;cursor:pointer}');

    const contentClassList = ['content-full', 'content-ellipsis', 'content', 'dynamic-link-hover-bg'];

    /**
     * @param {HTMLElement} element
     * @param {string} className
     */
    const hasClass = (element, className) => element.classList.contains(className);

    /**
     * @param {HTMLElement} element
     */
    const isContentElement = element => contentClassList.some(className => hasClass(element, className));

    document.addEventListener(
        'click',
        e => {
            /** @type {HTMLElement} */
            const $el = e.target;
            if ($el.classList.contains('up-info-tip')) {
                try {
                    const did = $el.parentElement.parentElement.parentElement.getAttribute('data-ori-did');
                    if (did) window.open(`https://t.bilibili.com/${did}?tab=2`, '_blank');
                } catch (e) {
                    console.error(e);
                }
            }
            if (isContentElement($el) || isContentElement(e.composedPath()[1])) {
                e.stopPropagation();
            }
        },
        { capture: true }
    );
})();