Ïåðåéòè èç ôîðóìà íà ñàéò.

ÍîâîñòèÔàéëîâûå àðõèâû
ÏîèñêÀêòèâíûå òåìûÒîï ëèñò
ÏðàâèëàÊòî â on-line?
Âõîä Çàáûëè ïàðîëü? Ïåðâûé ðàç íà ýòîì ñàéòå? Ðåãèñòðàöèÿ
Êîìïüþòåðíûé ôîðóì Ru.Board » Êîìïüþòåðû » Ïðîãðàììû » Opera íà äâèæêå Presto (÷àñòü 20)

Ìîäåðèðóåò : gyra, Maz

batva (18-10-2011 02:57): Opera (÷àñòü 21)  Âåðñèÿ äëÿ ïå÷àòè • ÏîäïèñàòüñÿÄîáàâèòü â çàêëàäêè
Íà ïåðâóþ ñòðàíèöóê ýòîìó ñîîáùåíèþê ïîñëåäíåìó ñîîáùåíèþ

   

Chauvinist



Silver Member
Ðåäàêòèðîâàòü | Ïðîôèëü | Ñîîáùåíèå | Öèòèðîâàòü | Ñîîáùèòü ìîäåðàòîðó

// ==UserScript==
// @name Google-Translate
// @author Lex1
// @version 1.7.3
// @description Google translate. Use the button with a similar code: "javascript:ujs_google_translate('auto|ru')"
// @ujs:documentation http://ruzanow.ru/index/0-5
// @ujs:download http://ruzanow.ru/userjs/google-translate.js
// ==/UserScript==
 
if(location.hostname == 'translate.google.com')(function(){
    var h = location.href;
    if(h.indexOf('&ujs=gtt') == h.length-8){
        if(window.opera){
            opera.addEventListener('BeforeExternalScript', function(e){e.preventDefault()}, false);
            opera.addEventListener('BeforeScript', function(e){e.preventDefault()}, false);
            opera.addEventListener('BeforeEventListener.load', function(e){e.preventDefault()}, false);
        };
        var s = document.createElement('style');
        s.setAttribute('type', 'text/css');
        s.appendChild(document.createTextNode('img,object,embed{display:none !important}'));
        document.getElementsByTagName('head')[0].appendChild(s);
    }
})();
 
window.addEventListener('load', function(){
    if(location.href.indexOf('http://translate.google.com/translate_n?') == 0 && window.parent != window)parent.document.body.rows = '0,*';
}, false);
 
document.addEventListener('mouseup', function(e){
    if(e && e.button == 0){
        var lc = navigator.lastClick || (navigator.lastClick = {});
        lc.X = e.clientX;
        lc.Y = e.clientY;
        lc.element = e.target;
    }
}, false);
 
document.addEventListener('focus', function(e){
    if(e){
        var target = e.target;
        var tag = target.nodeName.toLowerCase();
        if(tag == 'textarea' || (tag == 'input' && target.type == 'text')){
            (navigator.lastClick || (navigator.lastClick = {})).textArea = target;
        }
    }
}, true);
 
function ujs_createWindow(strContent, strStatus, strTitle, strId, pos, size){
    var wId = 'ujs_window';
    if(strId)wId += strId;
    var win = document.getElementById(wId);
    if(win)win.parentNode.removeChild(win);
    win = document.createElement('div');
    win.setAttribute('style', 'position:fixed;display:block;visibility:hidden;left:0;top:0;width:auto;height:auto;border:1px solid gray;padding:3px;margin:0;z-index:9999;overflow:hidden;cursor:move;'+(typeof win.style.borderRadius === 'string' ? 'background-color:#f3f5f7;padding-top:4px;border-radius:4px;box-shadow:0 0 12px rgba(0,0,0,.4);' : 'background:-o-skin("Window Skin");'));
    win.id = wId;
    var img = document.createElement('div');
    img.setAttribute('style', 'display:block;float:right;background:-o-skin("Caption Close Button Skin");width:18px;height:18px;padding:0;margin:0;border:none;cursor:pointer;');
    img.title = (navigator.language == 'ru') ? '\u0417\u0430\u043A\u0440\u044B\u0442\u044C' : 'Close';
    img.onclick = function(){this.parentNode.parentNode.removeChild(this.parentNode)};
    win.appendChild(img);
    var title = document.createElement('div');
    title.setAttribute('style', 'display:table;color:#000000;font:16px Times New Roman;width:auto;height:auto;padding:0;margin:0 2px;cursor:text;');
    title.innerHTML = strTitle || '';
    win.appendChild(title);
    var content = document.createElement('div');
    content.setAttribute('style', 'display:block;border:1px solid #aaaaaa;margin:2px 0 1px 0;padding:4px;background-color:#fafcfe;color:#000000;font:14px Times New Roman;width:240px;height:120px;overflow:auto;cursor:text;');
    content.innerHTML = strContent || '';
    win.appendChild(content);
    var status = document.createElement('div');
    status.setAttribute('style', 'display:table;color:#555555;font:10px Times New Roman;width:auto;height:auto;padding:0;margin:0 2px;cursor:text;');
    status.innerHTML = strStatus || '';
    win.appendChild(status);
    win.addEventListener('mousedown', function(e){
        if(e.target == win){
            e.preventDefault();
            var grabX = e.clientX, grabY = e.clientY;
            var origX = parseInt(win.style.left);
            var origY = parseInt(win.style.top);
            var dnd = function(e){
                win.style.left = origX+e.clientX-grabX+'px';
                win.style.top = origY+e.clientY-grabY+'px';
            };
            document.addEventListener('mousemove', dnd, false);
            document.addEventListener('mouseup', function(){document.removeEventListener('mousemove', dnd, false)}, false);
        }
    }, false);
    document.documentElement.appendChild(win);
 
    if(size){
        content.style.height = size.height;
        content.style.width = size.width;
    }
    else{
        for(var i = 3; i < 10; i++){
            if(content.scrollHeight > content.offsetHeight || content.scrollWidth > content.offsetWidth){
                content.style.height = 50*i+'px';
                content.style.width = 100*i+'px';
            }
            else break;
        }
    };
    var docEle = (document.compatMode == 'CSS1Compat' && window.postMessage) ? document.documentElement : document.body;
    var mX = docEle.clientWidth-win.offsetWidth;
    var mY = docEle.clientHeight-win.offsetHeight;
    if(mX < 0){content.style.width = parseInt(content.style.width)+mX+'px'; mX = 0};
    if(mY < 0){content.style.height = parseInt(content.style.height)+mY+'px'; mY =0};
    var hW = parseInt(win.offsetWidth/2);
    win.style.left = (pos && pos.X < mX+hW ? (pos.X > hW ? pos.X-hW : 0) : mX)+'px';
    win.style.top = (pos && pos.Y+10 < mY ? pos.Y+10 : mY)+'px';
    win.style.visibility = 'visible';
    document.addEventListener('keypress', function(e){
        if(e.keyCode == 27){this.removeEventListener(e.type, arguments.callee, false); var t = document.getElementById(wId); if(t)t.parentNode.removeChild(t)};
    }, false);
    return win;
};
 
window.addEventListener('message', function(e){
    if(e.data == 'google-translate'){
        var result = '', status = '';
        if(location.hostname == 'translate.google.com'){
            var r = document.getElementById('result_box');
            var d = document.getElementById('gt-res-dict');
            var s = document.getElementById('source');
            var h = document.getElementById('headingtext');
            if(r){
                var p = r.getElementsByTagName('span');
                for(var i = 0, n; n = p[i]; i++){
                    n.removeAttribute('onmouseover');
                    n.removeAttribute('onmouseout');
                    n.setAttribute('style', 'background-color:inherit;color:inherit;font-size:inherit;');
                };
                result = r.innerHTML;
            };
            if(s && d && d.getElementsByTagName('ol').length){
                var a = d.getElementsByTagName('*');
                for(var i = a.length; i--;){
                    var n = a[i];
                    switch(n.nodeName.toLowerCase()){
                        case 'ol': n.setAttribute('style', 'margin:0.2em 1em;padding:0;'); break;
                        case 'li': n.setAttribute('style', 'margin:0;padding:0;font:12px Arial;list-style-position:inside;'+(n.parentNode.parentNode == d ? 'float:left;font-weight:bold;list-style-type:none;' : 'list-style-type:decimal;')); break;
                        case 'a':
                        case 'h3': n.parentNode.removeChild(n); break;
                    }
                };
                result = '<b><q>'+s.value+'</q></b>'+d.innerHTML;
            };
            if(h && (status = h.firstChild.nodeValue)){
                status = status.replace(/^.*: /, '').toLowerCase();
                if(!result){result = status; status = ''};
            };
        };
        if(location.hostname == 'm.translate.ru'){
            var v = document.getElementsByTagName('div');
            for(var i = 0, n; n = v[i]; i++){
                if(n.className == 'tblue')status = n.nextSibling.nodeValue.slice(0, -1)+' (PROMT)';
                if(n.className == 'tres')result = n.innerHTML;
            }
        };
        if(result || status)e.source.postMessage('google_translate'+encodeURI(result)+'|'+encodeURI(status)+'|'+encodeURI(location.href), '*');
    };
    if(e.data && e.data.indexOf('google_translate') == 0){
        var origin = e.origin || 'http://'+e.domain;
        if(origin == 'http://translate.google.com' || origin == 'http://m.translate.ru'){
            var msg = e.data.slice(16).split('|');
            ujs_createWindow(decodeURI(msg[0]), decodeURI(msg[1]), '<a href="'+decodeURI(msg[2])+'" target="_blank" style="display:inline;padding:0;margin:0;text-decoration:none;border:none;color:#000099;font:16px Times New Roman;">Google Translate</a>', '_gt', navigator.lastClick);
            var f = document.getElementById('ujs_googletranslateframe');
            if(f)f.parentNode.removeChild(f);
        }
    }
}, false);
 
function ujs_google_translate(dir){
    var selText = function(w){var t; return w ? w.document.getSelection() || (t = w.navigator.lastClick && w.navigator.lastClick.textArea) && t.value.substring(t.selectionStart, t.selectionEnd) : ''};
    var selWin = function(w){if(selText(w))return w; for(var i = 0, f, r; f = w.frames[i]; i++){try{if(r = arguments.callee(f))return r}catch(e){}}};
    var winWait = function(w, lng){w.ujs_createWindow('', (lng == 'ru' ? '\u041F\u0435\u0440\u0435\u0432\u043E\u0434\u0438\u043C' : 'Translating')+'\u2026', 'Google Translate', '_gt', w.navigator.lastClick)};
    var createFrame = function(w, src){
        var fId = 'ujs_googletranslateframe';
        var f = w.document.getElementById(fId);
        if(f)f.parentNode.removeChild(f);
        f = w.document.createElement('iframe');
        f.width = 0;
        f.height = 0;
        f.frameBorder = 'no';
        f.scrolling = 'no';
        f.id = fId;
        f.name = fId;
        f.onload = function(){(window.postMessage ? f.contentWindow : f.contentDocument).postMessage('google-translate', '*')};
        w.document.documentElement.appendChild(f);
        if(src)f.src = src;
    };
    var createForm = function(w, action, name, value){
        var f = w.document.createElement('form');
        f.action = action;
        f.method = 'POST';
        f.acceptCharset = 'UTF-8';
        f.target = 'ujs_googletranslateframe';
        f.style.display = 'none';
        var t = w.document.createElement('textarea');
        t.name = name;
        t.value = value;
        f.appendChild(t);
        w.document.documentElement.appendChild(f);
        f.submit();
        f.parentNode.removeChild(f);
    };
 
    var w = selWin(window.top);
    var txt = selText(w);
    var encTxt = encodeURIComponent(txt);
    var lng = navigator.language;
    var url = escape(location.href);
    if(dir.indexOf('|') != -1){
        if(w && w.location.hostname != 'translate.google.com'){
            winWait(w, lng);
            if(encTxt.length < 1900){
                createFrame(w, 'http://translate.google.com/translate_t?text='+encTxt+'&hl='+lng+'&langpair='+dir+'&eotf=0&tbb=1&ujs=gtt');
            }
            else{
                var l = dir.split('|');
                createFrame(w, '');
                createForm(w, 'http://translate.google.com/?sl='+l[0]+'&tl='+l[1]+'&hl='+lng+'&eotf=0&ujs=gtt', 'text', txt);
            }
        }
        else{
            window.open('http://translate.google.com/translate?u='+url+'&hl='+lng+'&langpair='+dir+'&tbb=1'+(document.charset ? '&ie='+document.charset : ''));
        }
    }
    else{
        if(w && w.location.hostname != 'm.translate.ru'){
            winWait(w, lng);
            createFrame(w, 'http://m.translate.ru/translator/result/?text='+encodeURIComponent(txt.slice(0, 600))+'&dirCode='+dir);
        }
        else{
            window.open('http://www.translate.ru/url/tran_url.asp?direction='+dir+'&template=General&autotranslate=true&url='+url);
        }
    }
};

Âñåãî çàïèñåé: 4709 | Çàðåãèñòð. 27-10-2008 | Îòïðàâëåíî: 03:18 19-05-2011 | Èñïðàâëåíî: Chauvinist, 03:24 19-05-2011
   

Íà ïåðâóþ ñòðàíèöóê ýòîìó ñîîáùåíèþê ïîñëåäíåìó ñîîáùåíèþ

Êîìïüþòåðíûé ôîðóì Ru.Board » Êîìïüþòåðû » Ïðîãðàììû » Opera íà äâèæêå Presto (÷àñòü 20)
batva (18-10-2011 02:57): Opera (÷àñòü 21)


Ðåêëàìà íà ôîðóìå Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Ðåéòèíã.ru