Greasy Fork is available in English.

custom Script

快捷键执行自定义脚本

Verze ze dne 20. 12. 2020. Zobrazit nejnovější verzi.

K instalaci tototo skriptu si budete muset nainstalovat rozšíření jako Tampermonkey, Greasemonkey nebo Violentmonkey.

K instalaci tohoto skriptu si budete muset nainstalovat rozšíření jako Tampermonkey nebo Violentmonkey.

K instalaci tohoto skriptu si budete muset nainstalovat rozšíření jako Tampermonkey nebo Violentmonkey.

K instalaci tohoto skriptu si budete muset nainstalovat rozšíření jako Tampermonkey nebo Userscripts.

You will need to install an extension such as Tampermonkey to install this script.

K instalaci tohoto skriptu si budete muset nainstalovat manažer uživatelských skriptů.

(Už mám manažer uživatelských skriptů, nechte mě ho nainstalovat!)

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

(Už mám manažer uživatelských stylů, nechte mě ho nainstalovat!)

// ==UserScript==
// @name         custom Script
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  快捷键执行自定义脚本
// @author       neysummer2000
// @match        *://*/*
// @grant        GM_addStyle
// ==/UserScript==

(function() {
    GM_addStyle(`
#_rightMenu {
	z-index: 999999;
	background-color: rgba(0, 0, 0, 0.8);
	padding: 20px 20px 20px 0px;
    display: none;
    min-width: 100px;
    min-height: 100px;
    position: absolute;
    border: 1px solid black;
}

#_rightMenu a {
	color: white;
}

#_rightMenu li {
	border-bottom: 1px solid black;
	cursor: pointer;
}

#_rightMenu li:hover {
	background-color: rgba(0, 0, 0, 0.4);
}
`);

    var container = document.createElement("div");
    container.id = '_rightMenu';
    container.style.display = 'none';
    container.appendChild(document.createElement("ul"));
    document.body.appendChild(container);

    var g_menu = document.getElementById('_rightMenu');
    var g_scripts = [
        {
            name: 'open as popup',
            script: `
			var select = getSelectHtml();
			var s = getString(select, 'href="', '"');
			if(s == '') s = getString(select, 'src="', '"');
			if(s == '') s = select;
			if(s.substr(0, 4) == 'http'){
				window.open(s, new Date().getTime().toString(), 'height=1080, width=1920, top=0,left=0, toolbar=no, menubar=no, scrollbars=no, resizable=yes,location=no,status=no');
			}
			`
		},
    ];
    var a, li;
    var g_b_show = false;
    for(var script of g_scripts){
        li = document.createElement('li');

        a = document.createElement('a');
        a.href = 'javascript: void(0);';
        a.innerText = script.name;
        a.onclick = function(){
            eval(script.script);
            hideMenu();
        }

        li.appendChild(a);
        _rightMenu.children[0].appendChild(li);
    }

    var movex; var movey;
    document.addEventListener('mousemove', function(e){
        e=e  || window.event;
        if(e.pageX || e.pageY)
        {
            movex=e.pageX;
            movey=e.pageY;

            if(g_b_show){
                var x = g_menu.offsetLeft;
                var y = g_menu.offsetTop;
                if(movex < x || movex > x + g_menu.offsetWidth ||  movey < y || movey > y + g_menu.offsetHeight){
                    hideMenu();
                }
            }
        }
    });

    window.addEventListener('keydown', function(e){
        if(e.altKey && e.code == 'KeyM'){
            showMenu(movex, movey);
        }
    });

    g_menu.onblur = function(e){
        hideMenu();
    }
    function showMenu(x, y){
        g_menu.style.left = x+'px';
        g_menu.style.top = y+'px';
        g_menu.style.display = 'unset';
        g_b_show = true;
    }

    function hideMenu(){
        g_menu.style.display = 'none';
        g_b_show = false;
    }

    function getSelectHtml(){
        if(window.getSelection){
            documentFragment =  window.getSelection().getRangeAt(0).cloneContents();
        }else if(document.selection){
            documentFragment =  document.selection.createRange().HtmlText;
        }
        var selectedHtml = '';
        for(var i=0;i<documentFragment.childNodes.length;i++){
            var childNode = documentFragment.childNodes[i];
            if(childNode.nodeType==3){ // Text 节点
                selectedHtml+=childNode.nodeValue;
            }else{
                var nodeHtml = childNode.outerHTML;
                selectedHtml+=nodeHtml;
            }
        }
        return selectedHtml;
    }

    function getString(str, s, e){
        var i_start = str.indexOf(s);
        if(i_start != -1){
            i_start += s.length;
            var i_end = str.indexOf(e, i_start);
            if(i_end != -1){
                return str.substr(i_start, i_end - i_start);
            }
        }
        return '';
    }

})();