i鼠标划选url,点击图标新窗口打开链接。
当前为
// ==UserScript==
// @name Open Select url
// @version 2016.12.13
// @author kiki
// @include http*://*/*
// @description i鼠标划选url,点击图标新窗口打开链接。
// @grant GM_getValue
// @grant GM_setValue
// @grant GM_openInTab
// @grant GM_setClipboard
// @connect-src *
// @namespace https://greasyfork.org/users/15432
// ==/UserScript==
(function() {
'use strict';
document.onclick=function(e){
var x = e.pageX,y = e.pageY;
// alert(x);
// alert(y);
if (!document.getElementById("img_link")){
var img = document.createElement('img');
img.setAttribute("id","img_link");
img.setAttribute("src","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAABjElEQVR42p3UyytEYRjH8WHHNOOSycKlzAaTIlmLlZCFSyk1Lisrf4KdlZWVS1kol62SrOxsFIWQQm4NyWpcxyXyfes39TbOjHPmqU+NM8fPc97nOXw+75WHcWzjGruYRJEvyxrGG76xhRN9PkCBl6BchT3iDA3Wd2MKHfUS2IcPhaV2koMHbLoNG8CzzqwmzT372HE7BHPzDcoQRAv81j2N+MG0m8ASPGFWPy/hXaE+TfcCr2hyExjSuXUozHSygAAiCosjqrN0rHwFhfSLVZi3wkxVIKZBRTN1NIgj7dq5wpa1Fuax2zCjMHMU3ek6M3vWq2nG9HidVmeLqMMdPnGs6aetEbV/hXJrAKazOYRRrO9KU6b857ySb8ApqrUa9gC6NJiQmylOIKGwoK61ajWSA1jRH3QVeKgBRKxrfu1ZQNO8xZ6W/N+Ka4pOVas3xAyq3+17eol1h+uFWhszqB4v/0XMOnyh3bpWrzDT/VCmN8CpwnosE7qGVX1OKCyrqsQU7vGCDTR77czUL2CsZM7vyjJlAAAAAElFTkSuQmCC");
document.getElementsByTagName("body")[0].appendChild(img);
}
var imgs = document.getElementById("img_link");
var txt = window.getSelection?window.getSelection():document.selection.createRange().text;
var link = /(https?:\/\/)((\w|-|#|\?|=|\/|\+|%|&|:|;|!)+(\.)+)+/g;
txt = txt.toString();
if (txt.match(link) && imgs.style.display !== "block"){
var txt_start = txt.match(/http/).index;
txt = txt.slice(txt_start);
var txt_end = txt.match(/\s|[\u4e00-\u9fa5]|\n|\r|'|"/).index;
txt = txt.slice(0,txt_end);
var url = txt;
txt = null ;
imgs.style.display = "block";
imgs.style.position = "absolute" ;
imgs.style.top = y - 15 + "px";
imgs.style.left = x + "px" ;
imgs.style.width = "20px" ;
imgs.onmouseover = function(){imgs.style.opacity = "0.6";};
imgs.onmouseout = function(){imgs.style.opacity = "1";};
// document.execCommand('copy');
imgs.onclick = function(){window.open(url);};
}else {
imgs.style.display = "none";
txt = null;
}
};
})();