demo open talk

课件. 又拍云 open talk 公开课 油猴脚本 —— 只为更好的交互体验

目前為 2020-04-14 提交的版本,檢視 最新版本

// ==UserScript==
// 脚本名称
// @name         demo open talk
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  课件. 又拍云 open talk 公开课 油猴脚本 —— 只为更好的交互体验
// @author       You
// 在哪些页面生效, 支持通配符
// @match        https://www.zhihu.com/question/*
// @grant        GM_addStyle
// ==/UserScript==

// 隐藏右边栏
GM_addStyle('.Question-sideColumn {display: none !important}');
// 加宽内容栏
GM_addStyle('.Question-mainColumn {width: 1000px !important}');

(function() {
    'use strict';

    // Your code here...
    // 创建元素
    function createEle(eleName, text, attrs){
        let ele = document.createElement(eleName);
        ele.innerText = text;
        for (let k in attrs) {
           ele.setAttribute(k, attrs[k]);
        }
        return ele;
    }

    // 复制到剪贴板
    function updateClipboard(newClip) {
        navigator.clipboard.writeText(newClip).then(function() {
        alert('succeed copy');
        }, function(err) {
            /* clipboard write failed */
            console.info('failed copy', err);
            alert('faild copy')
        });
    }

    const added = [];
    const btnStyle = 'background-color: #0084ff; margin-top: 15px; margin-bottom: 15px; margin-left:-5px; cursor:pointer; color: #fff; border-radius: 3px; border: 1px solid; padding: 3px 6px';


    // 加转载按钮
    function addBtn() {
        const all = document.querySelectorAll('div[class="List-item"]');
        for (let item of all) {
            const meta = item.querySelector('div[class="ContentItem-meta"]');
            const who = meta.querySelector('meta[itemprop="url"]').getAttribute('content').split('/').pop();
            if (added.indexOf(who) > -1) {
                continue;
            }
            const btn = createEle('button', '转载按钮', {style: btnStyle});
            const text = item.querySelector('div[class="RichContent-inner"]').innerText;
            btn.addEventListener('click', ()=>{updateClipboard(text)});
            meta.append(btn);
            added.push(who);
        }
    }

    window.addEventListener('scroll', addBtn);

})();