사용자:하늘/hanja-dict-tools.js

< 사용자:하늘
하늘 (토론 | 기여)님의 2022년 1월 27일 (목) 19:45 판 (버그 잡기)

참고: 설정을 저장한 후에 바뀐 점을 확인하기 위해서는 브라우저의 캐시를 새로 고쳐야 합니다.

  • 파이어폭스 / 사파리: Shift 키를 누르면서 새로 고침을 클릭하거나, Ctrl-F5 또는 Ctrl-R을 입력 (Mac에서는 ⌘-R)
  • 구글 크롬: Ctrl-Shift-R키를 입력 (Mac에서는 ⌘-Shift-R)
  • 인터넷 익스플로러 / 엣지: Ctrl 키를 누르면서 새로 고침을 클릭하거나, Ctrl-F5를 입력.
  • 오페라: Ctrl-F5를 입력.
//블록 지정하고 '漢을 가리키면 링크가 나타납니다.'
function hanja_dict_tools() {
  $('#dict-tool').remove()
  var body = $("body");

  var button = document.createElement("div");
  button.id = "dict-tool";
  button.style.left = '0';
  button.style.bottom = '0';
  button.style.position = 'fixed';
  button.style.background = 'rgba(255, 255, 255, 0.94) none repeat scroll 0% 0%';
  button.style.boxShadow = '0 0 7px #acacac';
  button.style.borderRadius = '0 0.2em 0 0';
  button.style.padding = '0.25em';
  button.style.fontSize = '1.4em';
  button.style.lineHeight = '1em';
  button.style.zIndex = '1000';
  button.innerHTML = "<span>漢</span>";
  body.append(button);

  var selection = '';
  var unicode = '';
  document.querySelector('#dict-tool > span').onmouseover = function() {
    if (window.getSelection) {
      text = window.getSelection().toString();
    } else if (document.selection && document.selection.type != "Control") {
      text = document.selection.createRange().text;
    }

    function link(url, text) {
      var a = document.createElement('a');
      a.href = url;
      a.target = '_blank';
      a.rel = 'noopener noreferrer';
      a.innerHTML = '<small>' + text + ' </small>';
      return a;
    }
    if (text !== "") {
      button.innerHTML = "<span>"+text+"</span> <small>>> </small>";
      unicode = 'u' + text.codePointAt().toString(16);

      button.append(link('https://en.wiktionary.org/wiki/' + text, '윅셔너리'));
      button.append(link('http://ko.glyphwiki.org/wiki/' + unicode, '글리프 위키'));
      button.append(link('https://commons.wikimedia.org/wiki/Category:' + text, '위키미디어'));

      error = false;
    }
    /*else {
    	  button.innerText = "블록 지정 부분을\n 확인해 주세요";
    	  error = true;
      }*/
  };
}

hanja_dict_tools()