Open Select url

鼠标划选url,对选择内容做简单修改,点击图标新窗口打开链接。

  1. // ==UserScript==
  2. // @name Open Select url
  3. // @version 2016.12.27
  4. // @author kiki
  5. // @include http*://*/*
  6. // @description 鼠标划选url,对选择内容做简单修改,点击图标新窗口打开链接。
  7. // @grant GM_getValue
  8. // @grant GM_setValue
  9. // @grant GM_openInTab
  10. // @grant GM_setClipboard
  11. // @connect-src *
  12. // @namespace https://greasyfork.org/users/15432
  13. // ==/UserScript==
  14.  
  15. (function() {
  16. 'use strict';
  17. document.onclick=function(e){
  18. var x = e.pageX,y = e.pageY;
  19. if (!document.getElementById("img_link")){
  20. var img = document.createElement('img');
  21. img.setAttribute("id","img_link");
  22. img.setAttribute("src","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAABjElEQVR42p3UyytEYRjH8WHHNOOSycKlzAaTIlmLlZCFSyk1Lisrf4KdlZWVS1kol62SrOxsFIWQQm4NyWpcxyXyfes39TbOjHPmqU+NM8fPc97nOXw+75WHcWzjGruYRJEvyxrGG76xhRN9PkCBl6BchT3iDA3Wd2MKHfUS2IcPhaV2koMHbLoNG8CzzqwmzT372HE7BHPzDcoQRAv81j2N+MG0m8ASPGFWPy/hXaE+TfcCr2hyExjSuXUozHSygAAiCosjqrN0rHwFhfSLVZi3wkxVIKZBRTN1NIgj7dq5wpa1Fuax2zCjMHMU3ek6M3vWq2nG9HidVmeLqMMdPnGs6aetEbV/hXJrAKazOYRRrO9KU6b857ySb8ApqrUa9gC6NJiQmylOIKGwoK61ajWSA1jRH3QVeKgBRKxrfu1ZQNO8xZ6W/N+Ka4pOVas3xAyq3+17eol1h+uFWhszqB4v/0XMOnyh3bpWrzDT/VCmN8CpwnosE7qGVX1OKCyrqsQU7vGCDTR77czUL2CsZM7vyjJlAAAAAElFTkSuQmCC");
  23. document.getElementsByTagName("body")[0].appendChild(img);
  24. }
  25. var imgs = document.getElementById("img_link");
  26. var txt = window.getSelection?window.getSelection():document.selection.createRange().text;
  27. var link = /(https?:\/\/)((\w|-|#|\?|=|\/|\+|%|&|:|;|!)+(\.)+)+/g;
  28. txt = txt.toString();
  29. if (txt.match(link) && imgs.style.display !== "block"){
  30. txt = txt.slice(txt.match(/(http)/) ? txt.match(/(http)/).index :0);
  31. var url = txt.match(/\s|[\u4e00-\u9fa5]|\n|\r|'|"/) ? txt.slice(0,txt.match(/\s|[\u4e00-\u9fa5]|\n|\r|'|"/).index):txt;
  32. // console.log(url);
  33. imgs.style.display = "block";
  34. imgs.style.position = "absolute" ;
  35. imgs.style.top = y - 15 + "px";
  36. imgs.style.left = x + "px" ;
  37. // imgs.style.width = "20px" ;
  38. imgs.onmouseover = function(){imgs.style.opacity = "0.6";};
  39. imgs.onmouseout = function(){imgs.style.opacity = "1";};
  40. // document.execCommand('copy');
  41. imgs.onclick = function(){window.open(url);};
  42. }else {
  43. imgs.style.display = "none";
  44. }
  45. };
  46. })();