Greasy Fork

Greasy Fork is available in English.

在网站底部固定显示单词、语录或者任何你想要看到的文本

默认在所有网站上面添加

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name         在网站底部固定显示单词、语录或者任何你想要看到的文本
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  默认在所有网站上面添加
// @author       潘志城_Neo
// @match        *://*/*
// @grant        none
// ==/UserScript==

/*
重要说明:
    1.需要自己修改脚本里面的内容,详看下面的“使用步骤”。
    2.本脚本不会更新,免得大家不小心点了更新,导致自己设置的内容被新脚本覆盖了。
    3.大家自己在电脑里面备份好自己的内容哈。

使用步骤:
    1.搜索【定义要显示的列表】就能定义列表的地方,其中的【Default_Data_List】就是默认使用的列表,
      直接把里面的内容修改为自己想要显示的内容就行。
    2.修改的时候,注意先看看【Default_Data_List】下面的说明。
    3.按照上面说的修改之后就能用了。
    4.如果想要设置一下字体颜色什么的,可以搜索【常用的设置】,找到自己想要设置的内容设置。

快捷键:
    1.显示/隐藏文本:ctrl+shift+s。
    2.显示/隐藏面板:ctrl+shift+a。

鼠标点击事件:(这里指点击文本——单词、语录之类的。)
    1.左键点击:切换下一条文本。
    2.中键点击:复制文本到剪贴板。
    3.右键点击:跳转到查词网站并查词。搜索【要用的词典】修改要用的词典。
*/
(function() {
    'use strict';

    ////常用的设置
    //如果是网站是被镶嵌在【iframe】里面的话,加不加载
    const Show_In_Iframe = false  //加载:true ;不加载:false

    //是否自动切换文本
    const Switch_Data = true  //自动切换:true ; 不自动切换:false

    //如果自动切换文本,那么多少【秒】切换一次
    const Switch_Second = 30

    //文字的颜色(颜色值可以在百度上搜索【在线取色工具】,或者直接用这个:https://www.58pic.com/zhinengpeise/)
    const Data_Color = "#00A1D6"

    //背景的颜色
    const Data_Background_Color = "rgba(255, 255, 255, 1)" //括号里面最后的一个参数是【不透明度】范围是0-1之间(包含0和1) —— 0代表:全透明。1代表:全不透明。

    //字体大小
    const Data_Font_Size = "15px"

    //显示/隐藏快捷操作面板(这个不用设置,用快捷键【ctrl+shift+a】来控制隐藏和显示)
    var show_panel = false

    //显示/隐藏文本(这个不用设置,用快捷键【ctrl+shift+s】来控制隐藏和显示)
    var show_text = true

    //上次一次文本(这个不用设置)
    var Last_Content = ""

    ////快捷面板配色
    //第一组
    const Panel_BackgroundColor_1 = "#44B6F3"
    const Panel_Color_1 = "#fff"
    //第二组
    const Panel_BackgroundColor_2 = "#5EC0F5"
    const Panel_Color_2 = "#fff"


    //定义右键点击时的操作
    var Neo_Rclick_Mode = 1
    /*
    0:普通文本模式,用百度搜索
    1:查词模式,跳转到查词网站查词
    */


    ////以下定义的时候【getData】函数的参数

    //定义要显示的列表(请先看下面的说明)
    var Default_Data_List =[
        "眼鏡 | めがね ①↵[名] 眼镜。(近視・遠視・乱視などの視力を調整したり、強い光線から目を保護したりするために用いる、凹または凸レンズや色ガラスなどを使った器具。)",
        "可愛い | かわいい ③↵[形·惯用语] 讨人喜欢。(いたわしい。) 宝贵的。(愛すべきである。) 小巧玲珑。(小さくて美しい。)",
        "大丈夫 | だいじょうぶ ③↵[形容動詞] 牢固,可靠。 放心,不要紧,没错儿(まちがいがなくて確かなさま)。",
        "instance | 美[ˈɪnstəns] n.	例子; 事例; 实例。"]
    /*
    重要!!!如果是单词而且要用到在词典网站搜索单词的功能的话,就要有分隔符。
    列表的分隔符说明:
        1.列表的每一项内容里面的【"|"】是分割符,查词的时候会取出【"|"】前面的内容来查。
        2.默认分割符是【"|"】,所以如果你的内容也是用【"|"】这个隔开的话,就不用看第3点了。
        3.自定义分隔符说明:
            例如:你的文本格式是这样的:target /ˈtɑːrɡɪt/ n. 目标,
            在查词的时候我们只需要查【target】,而【target】和后面的内容之间有【空格】和【/】
            所以,分隔符的值可以填【" "】或者【"/"】,搜索【设置文本的分割符号】,来设置分割符。

    */

    //设置文本的分割符号,查词的时候要用。
    const separator = "|" //默认是【"|"】,对应的文本格式是: target | /ˈtɑːrɡɪt/ n. 目标


    //【随机】从 data_list 中选择一项来显示
    /*
    data_list:要显示的列表,把【Default_Data_List】改成你想要使用的列表名称
    直接在参数那里设置默认使用的列表,调用的时候不传参数
    */
    function getData(data_list = Default_Data_List ) {
        //保存上一次的文本到【Last_Content】
        Last_Content = document.getElementById('neo_add_data').innerText

        let len = data_list.length;
        let num = Math.floor((Math.random() * len));
        let neo_data = data_list[num];

        return neo_data;
    }


    //查词函数
    /*
    dict_web:要用的词典,默认是"沪江小D"(右键点击文本的时候用的词典,可以改成下面列表中的任意一个词典)
    */
    const Neo_search = function(dict_web = "沪江小D",use_ShowPanel = true){
        //查词网站列表
        let dict_web_list = {
            "欧路":"https://dict.eudic.net/dicts/en/",
            "有道英语":"https://www.youdao.com/w/eng/",
            "有道日语":"https://www.youdao.com/w/jap/",
            "沪江小D":"https://dict.hjenglish.com/jp/jc/"
        }

        //词典的查词链接
        let target_site = dict_web_list[dict_web]
        //要查询的词
        let reg = new RegExp(".+(?=\\"+separator+")","g");
        let temp_text = document.getElementById('neo_add_data').innerText.match(reg)
        //如果找不到匹配,就直接用整句文本
        if(temp_text==null){
            temp_text = document.getElementById('neo_add_data').innerText
        }
        //完整的链接
        let serch_text = target_site+temp_text
        if (use_ShowPanel == true){
            ShowPanel()
        }
        window.open(serch_text)
    }



    //复制到剪贴板
    const neo_copy = function(copy_content){
        $("body").append('<textarea  id="neo_temp"/>')
        $("#neo_temp").val(copy_content)
        $("#neo_temp").select()
        document.execCommand("copy")
        $("#neo_temp").remove()

    }

    //面板的隐藏和显示
    const ShowPanel = function(){
        if(show_panel==true){
            document.getElementById("neo_add_data_panel").style.display="block"
            show_panel = !show_panel
        }else{
            document.getElementById("neo_add_data_panel").style.display="none"
            show_panel = !show_panel

        }
    }

    //面板的隐藏和显示
    const ShowText = function(){
        if(show_text==false){
            document.getElementById("neo_add_data").style.display="block"
            show_text = !show_text
        }else{
            document.getElementById("neo_add_data").style.display="none"
            show_text = !show_text

        }
    }

    //按键操作
    document.onkeyup= function(event){
        var e = event || window.event || arguments.callee.caller.arguments[0];

        //显示/隐藏快捷操作面板 ctrl+shift+a
        if (e && e.keyCode == 65 && e.ctrlKey === true && e.shiftKey === true) {
            ShowPanel()
        }

        //显示/隐藏文本 ctrl+shift+s
        if (e && e.keyCode == 83 && e.ctrlKey === true && e.shiftKey === true) {
            ShowText()
        }

    }

    //添加dom
    const add_dom = function(){
        let interval = setInterval(function(){
            if(document.getElementById('neo_add_data') == null){
                ////添加显示语录的dom
                var obj=document.createElement("div");
                obj.value="1";
                obj.id = "neo_add_data"
                document.getElementsByTagName("body")[0].appendChild(obj)
                //document.querySelector('body').prepend(obj)
                //document.getElementsByTagName("body")[0].innerHTML='<div id="ttttttttt" style="position:fixed;bottom:15px;background:#600;width:100vw;color:#009;text-align:center">23123213213231</div>'+document.getElementsByTagName("body")[0].innerHTML

                //设置语录样式
                document.getElementById("neo_add_data").style.position="fixed"
                document.getElementById("neo_add_data").style.bottom="0px"
                document.getElementById("neo_add_data").style.left="0px"
                document.getElementById("neo_add_data").style.width="100vw"
                document.getElementById("neo_add_data").style.color= Data_Color
                //document.getElementById("neo_add_data").style.font-weight="bold"
                document.getElementById("neo_add_data").style.fontSize= Data_Font_Size
                //document.getElementById("neo_add_data").style.height= "22px"
                document.getElementById("neo_add_data").style.background= Data_Background_Color
                document.getElementById("neo_add_data").style.textAlign="center"
                document.getElementById("neo_add_data").style.zIndex=10000

                //设置语录
                document.getElementById('neo_add_data').innerText = getData()

                //$("#neo_add_data").css("text-shadow","#FFF 1px 0 0, #FFF 0 1px 0, #FFF -1px 0 0, #FFF 0 -1px 0") //这一行是四边都添加1像素的投影,相当于是添加了1像素的描边
                //$("#neo_add_data").css("-webkit-text-stroke","1px #fff 0.5") //给文本添加描边

                document.getElementById("neo_add_data").onmouseup = function(e){
                    if(e.button ==2){

                        //右键
                        switch(Neo_Rclick_Mode){
                            case 0:
                                window.open( 'https://www.baidu.com/s?&wd='+document.getElementById('neo_add_data').innerText)
                                break
                            case 1:
                                Neo_search("沪江小D",false)
                                break
                        }

                    }else if(e.button ==0){
                        //左键
                        document.getElementById('neo_add_data').innerText = getData()
                    }else if(e.button ==1){
                        //滚轮
                        neo_copy(document.getElementById('neo_add_data').innerText)
                    }
                }


                ////添加快捷操作面板
                var obj1=document.createElement("div");
                obj1.value="1";
                obj1.id = "neo_add_data_panel"
                //obj1.innerText = "【快捷菜单选项】"
                document.getElementsByTagName("body")[0].appendChild(obj1)
                //document.querySelector('body').prepend(obj1)

                //设置语录样式
                document.getElementById("neo_add_data_panel").style.display="none"
                document.getElementById("neo_add_data_panel").style.position="fixed"
                //document.getElementById("neo_add_data_panel").style.bottom = "20px"
                document.getElementById("neo_add_data_panel").style.bottom = "20px"
                document.getElementById("neo_add_data_panel").style.left="0px"
                document.getElementById("neo_add_data_panel").style.width="100vw"
                //document.getElementById("neo_add_data_panel").style.color= "#1AB37D"
                document.getElementById("neo_add_data_panel").style.color=Panel_Color_2
                //document.getElementById("neo_add_data_panel").style.font-weight="bold"
                document.getElementById("neo_add_data_panel").style.fontSize= Data_Font_Size
                //document.getElementById("neo_add_data_panel").style.background= Data_Background_Color
                document.getElementById("neo_add_data_panel").style.background= Panel_BackgroundColor_2
                document.getElementById("neo_add_data_panel").style.textAlign="center"
                document.getElementById("neo_add_data_panel").style.zIndex=10000






                ////添加快捷面板里面的选项
                var obj01=document.createElement("span");
                obj01.id = "title_text"
                obj01.innerText = "【快捷菜单选项】"
                document.getElementById("neo_add_data_panel").appendChild(obj01)
                //document.getElementById("gap").style.height="20px"
                document.getElementById("title_text").style.display="block"
                document.getElementById("title_text").style.marginLeft = "9px"
                document.getElementById("title_text").style.marginTop = "9px"
                document.getElementById("title_text").style.lineHeight="20px"
                document.getElementById("title_text").style.fontSize="22px"


                var obj0=document.createElement("span");
                obj0.id = "gap"
                obj0.innerText = "-------------------------"
                document.getElementById("neo_add_data_panel").appendChild(obj0)
                //document.getElementById("gap").style.height="20px"
                document.getElementById("gap").style.display="block"
                document.getElementById("gap").style.marginLeft = "9px"
                document.getElementById("gap").style.lineHeight="20px"


                //【英语】用欧路词典查询
                var obj3=document.createElement("div");
                obj3.value="1";
                obj3.id = "neo_add_data_panel_oulu_search"
                obj3.innerText = "【英语】用欧路词典查询"
                obj3.title = "【英语】用欧路词典查询"

                document.getElementById("neo_add_data_panel").appendChild(obj3)
                document.getElementById("neo_add_data_panel_oulu_search").style.cursor="pointer"
                document.getElementById("neo_add_data_panel_oulu_search").style.height="30px"
                document.getElementById("neo_add_data_panel_oulu_search").style.lineHeight="30px"
                //document.getElementById("neo_add_data_panel_oulu_search").style.background= "rgba(235, 235, 255, 0.6)"
                document.getElementById("neo_add_data_panel_oulu_search").style.background= Panel_BackgroundColor_1
                document.getElementById("neo_add_data_panel_oulu_search").style.color= Panel_Color_1



                document.getElementById("neo_add_data_panel_oulu_search").onclick = function(){ Neo_search("欧路") }


                //【英语】用有道词典查询
                var obj2=document.createElement("div");
                obj2.value="1";
                obj2.id = "neo_add_data_panel_youdao_search"
                obj2.innerText = "【英语】用有道词典查询"
                obj2.title = "【英语】用有道词典查询"

                document.getElementById("neo_add_data_panel").appendChild(obj2)
                document.getElementById("neo_add_data_panel_youdao_search").style.cursor="pointer"
                document.getElementById("neo_add_data_panel_youdao_search").style.height="30px"
                document.getElementById("neo_add_data_panel_youdao_search").style.lineHeight="30px"
                //document.getElementById("neo_add_data_panel_youdao_search").style.background= "rgba(235, 255, 235, 0.6)"
                document.getElementById("neo_add_data_panel_youdao_search").style.background= Panel_BackgroundColor_2
                document.getElementById("neo_add_data_panel_youdao_search").style.color= Panel_Color_2

                document.getElementById("neo_add_data_panel_youdao_search").onclick = function(){ Neo_search("有道英语") }


                //【日语】用沪江小D查询
                var obj4=document.createElement("div");
                obj4.value="1";
                obj4.id = "neo_add_data_panel_hujiang_search"
                obj4.innerText = "【日语】用沪江词典查询"
                obj4.title = "【日语】用沪江小D查询"

                document.getElementById("neo_add_data_panel").appendChild(obj4)
                document.getElementById("neo_add_data_panel_hujiang_search").style.cursor="pointer"
                document.getElementById("neo_add_data_panel_hujiang_search").style.height="30px"
                document.getElementById("neo_add_data_panel_hujiang_search").style.lineHeight="30px"
                //document.getElementById("neo_add_data_panel_hujiang_search").style.background= "rgba(235, 235, 255, 0.6)"
                document.getElementById("neo_add_data_panel_hujiang_search").style.background= Panel_BackgroundColor_1
                document.getElementById("neo_add_data_panel_hujiang_search").style.color= Panel_Color_1

                document.getElementById("neo_add_data_panel_hujiang_search").onclick = function(){ Neo_search("沪江小D") }


                //【日语】用有道词典查询
                var obj5=document.createElement("div");
                obj5.value="1";
                obj5.id = "neo_add_data_panel_youdao_riyu_search"
                obj5.innerText = "【日语】用有道词典查询"
                obj5.title = "【日语】用有道词典查询"

                document.getElementById("neo_add_data_panel").appendChild(obj5)
                document.getElementById("neo_add_data_panel_youdao_riyu_search").style.cursor="pointer"
                document.getElementById("neo_add_data_panel_youdao_riyu_search").style.height="30px"
                document.getElementById("neo_add_data_panel_youdao_riyu_search").style.lineHeight="30px"
                //document.getElementById("neo_add_data_panel_youdao_riyu_search").style.background= "rgba(235, 255, 235, 0.6)"
                document.getElementById("neo_add_data_panel_youdao_riyu_search").style.background= Panel_BackgroundColor_2
                document.getElementById("neo_add_data_panel_youdao_riyu_search").style.color= Panel_Color_2

                document.getElementById("neo_add_data_panel_youdao_riyu_search").onclick = function(){ Neo_search("有道日语") }


                //【其他】显示上一次的文本
                var obj6=document.createElement("div");
                obj6.value="1";
                obj6.id = "neo_add_data_panel_show_last_content"
                obj6.innerText = "【其他】显示上次的文本"
                obj6.title = "【其他】显示上次的文本"

                document.getElementById("neo_add_data_panel").appendChild(obj6)
                document.getElementById("neo_add_data_panel_show_last_content").style.cursor="pointer"
                document.getElementById("neo_add_data_panel_show_last_content").style.height="30px"
                document.getElementById("neo_add_data_panel_show_last_content").style.lineHeight="30px"
                //document.getElementById("neo_add_data_panel_show_last_content").style.background= "rgba(235, 235, 255, 0.6)"
                document.getElementById("neo_add_data_panel_show_last_content").style.background= Panel_BackgroundColor_1
                document.getElementById("neo_add_data_panel_show_last_content").style.color= Panel_Color_1

                document.getElementById("neo_add_data_panel_show_last_content").onclick = function(){
                    if(Last_Content !=""){
                        document.getElementById('neo_add_data').innerText = Last_Content
                    }else{
                        document.getElementById("neo_add_data_panel_show_last_content").innerText = "【提示】当前是第一个文本"
                        document.getElementById("neo_add_data_panel_show_last_content").style.color = "#d22"
                        setTimeout(function(){
                            document.getElementById("neo_add_data_panel_show_last_content").innerText ="【其他】显示上次的文本"
                            document.getElementById("neo_add_data_panel_show_last_content").style.color = ""
                            ShowPanel()
                        },1000)

                    }
                }
                //clearInterval(interval)
            }
        },500)

        //【Switch_Second】秒切换一次语录(Switch_Second 在代码开头可以定义)
        setInterval(function(){
            if(Switch_Data == true){
                //设置语录
                document.getElementById('neo_add_data').innerText = getData()
            }
        },Switch_Second*1000)
    }


    //主函数
    const NeoMain = function(){
        add_dom()

    }

    //如果是网站是被镶嵌在iframe里面的话,就不加载
    if (Show_In_Iframe == false){
        if(window.self === window.top){
            NeoMain()
        }
    }else {
        NeoMain()
    }



})();