微软翻译组件

微软翻译组件 右下角点击翻译

Fra 22.03.2017. Se den seneste versjonen.

// ==UserScript==
// @name 微软翻译组件
// @description 微软翻译组件  右下角点击翻译
// @include     *
// @exclude     *.jpg
// @exclude     *.png
// @exclude     *.jpeg
// @exclude     *.gif
// @exclude     *.pdf
// @require     https://cdnjs.cloudflare.com/ajax/libs/js-cookie/2.1.3/js.cookie.min.js
// @grant       aogg
// @version 2.2.5
// @namespace https://greasyfork.org/users/25818
// ==/UserScript==



var width = '83';
var height = '20';
if (parent !== parent.parent || document.documentElement.clientWidth <= width * 2 || document.documentElement.clientHeight <= height * 2){ 
  // 控制层次,避免无限调用,如:http://www.w3school.com.cn/html/html_entities.asp
  // 控制宽高小的不显示
  return;
}


// 重置cookie
console.log('remove cookie mstto');
Cookies.remove('mstto');

var locals = ''; // zh-chs
var source = null;
var status = false;


var scriptNode = document.createElement('script');
scriptNode.innerHTML = "setTimeout(function(){{var s=document.createElement('script');s.type='text/javascript';s.charset='UTF-8';s.src=((location && location.href && location.href.indexOf('https') == 0)?'https://ssl.microsofttranslator.com':'http://www.microsofttranslator.com')+'/ajax/v3/WidgetV3.ashx?siteData=ueOIGRSKkd965FeEGM5JtQ**&ctf=False&ui=false&settings=Manual&from=';var p=document.head[0]||document.documentElement;p.insertBefore(s,p.firstChild); }},0);"
document.body.appendChild(scriptNode);

var divNode = document.createElement('div');
divNode.id = 'MicrosoftTranslatorWidget';
divNode.style.color = 'white';
divNode.style.backgroundColor = '#555555';
divNode.style.position = 'fixed';
divNode.style.right = '0';
divNode.style.bottom = '0';
divNode.style.zIndex = '9999999';
divNode.style.width= width + 'px';
//divNode.setAttribute('style', 'color:white;background-color:#555555;position: fixed;right: 0;bottom: 0;');
document.body.appendChild(divNode);


document.onreadystatechange = function () {
  if (document.readyState == 'complete') {
    var selectHtml = document.createElement('select');
    selectHtml.style.backgroundColor = 'rgb(178, 178, 178)';
    selectHtml.ondblclick = function(){ // 双击隐藏
      this.style.display = 'none';
    };
    selectHtml.onchange = function(){
      source = this.options[this.selectedIndex].getAttribute('data-source') || null;
      locals = this.value;
      translateStart();
    };
    // Microsoft.Translator.Widget.GetLanguagesForTranslateLocalized()获取所有支持的翻译选项
    selectHtml.innerHTML = "\
    <option value=''>请选择</option>\
    <option value='zh-chs'>简体中文</option>\
    <option value='zh-cht'>繁体中文</option>\
    <option value='yue'>粤语</option>\
    <option value='ja'>日文</option>\
    <option id='MicrosoftTranslatorWidget-option-en' value='en'>英文</option>\
";
    document.body.children.namedItem('MicrosoftTranslatorWidget').appendChild(selectHtml);
    
    
    status = true;
    translateStart();
  }
}

function translateStart(){
  if (status && locals){
    // null, 'es', onProgress, onError, onComplete, onRestoreOriginal, 2000
    Microsoft.Translator.Widget.Translate(source, locals, null, null, onComplete);
  }
}

function onComplete(){
  document.body.children.namedItem('MicrosoftTranslatorWidget').children.item(0).children.namedItem('MicrosoftTranslatorWidget-option-en').innerText = '英文';
  
}

	
function addGlobalStyle(css) {
	var head, style;
	head = document.getElementsByTagName('head')[0];
	if (!head) { return; }
	style = document.createElement('style');
	style.type = 'text/css';
	style.innerHTML = css;
	head.appendChild(style);
}
	
	
console.log('完成');