Ente

Übersetze ausgewählte englische Worte nach Deutsch mit dict.cc

目前為 2021-02-26 提交的版本,檢視 最新版本

// ==UserScript==
// @name        Ente
// @namespace   meyerk.com
// @match       *://*/*
// @grant       none
// @version     0.3
// @author      MeyerK
// @description Übersetze ausgewählte englische Worte nach Deutsch mit dict.cc
// @noframes
// ==/UserScript==

class ente
{
  
  constructor()
  {
    this.rightAltKeyIsOn = false;
    this.isVisible = false;
  }
  
  setup()
  {
    let frame = document.createElement('iframe');
    frame.id = 'enteFrame';
    frame.style.position = 'fixed';
    frame.style.left = '10px';
    frame.style.top = '10px';
    frame.style.width = '300px';
    frame.style.padding = '5px';
    frame.style.height = '100px';
    frame.style.border = '1px solid blue';
    frame.style.backgroundColor = 'aliceblue';
    frame.style.display = 'none';
    frame.style.borderRadius = '5px';
    frame.style.zIndex = '9999999999999999999999999';
        
    document.getElementsByTagName('body')[0].appendChild(frame);
  }
  
  handleKeys(ev)
  {     
    if (this.rightAltKeyIsOn)
    {
      if (ev.code == 'KeyU')
      {
        let text = window.getSelection().toString();
        let frame = document.getElementById('enteFrame');
        frame.src = "//syn.dict.cc/dcc-gadget.php?s=" + encodeURIComponent(text);
        frame.style.display = 'block';
        this.isVisible = true;
        
        return false;
      }
    }
    
    if (ev.code == 'AltRight')
    {
      this.rightAltKeyIsOn = (ev.type == 'keydown') ? true : false; 
    }    
  }

  handleMouse(ev)
  {
    if (this.isVisible)
    {      
      let frame = document.getElementById('enteFrame');
      frame.style.display = 'none';
      this.isVisible = false;      
    }    
  }
    
}

var en2de = new ente();
en2de.setup();
document.addEventListener('keydown', en2de.handleKeys.bind(en2de));
document.addEventListener('keyup',   en2de.handleKeys.bind(en2de));
document.addEventListener('click',   en2de.handleMouse.bind(en2de));