LEX1
Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору amr_now Как-то так: Код: javascript: (function () { var getSel = function (w) { var s, d = w.document; if (d.selection) { var r = d.selection.createRange(); s = r ? r.text : '' } else { s = d.getSelection().toString(); if (!s) { var e, t = d.getElementsByTagName('textarea'), u = d.getElementsByTagName('input'), i = t.length; while (e = (i > 0) ? t[--i] : u[-i--]) try { if (e.offsetHeight > 0 && (s = e.value.substring(e.selectionStart, e.selectionEnd))) break } catch(x) {} } }; if (!s) for (var i = 0, f; f = w.frames[i]; i++) { try { if (s = arguments.callee(f)) break } catch(x) {} }; return s }; var txt = encodeURIComponent(getSel(window)); if (!txt || txt.length > 1900) { window.open('http://translate.google.com/translate?u=' + escape(location.href) + '&hl=ru&langpair=auto|ru&tbb=1&ie=' + document.characterSet) } else { var callback = ('js'+Math.random()).replace('.', 'n'), ele = document.documentElement.appendChild(document.createElement('script')); window[callback] = function (o) { var wnd = window.open('about:blank','Bing','width=400,height=200,left=100,top=100,scrollbars=yes,location=no'); wnd.document.write('<!DOCTYPE html PUBLIC><html><head><title>Перевод</title><body><pre style=\'white-space:pre-wrap;\'>'+o.replace(/</g,'<').replace(/>/g,'>')+'</pre></body></html>'); wnd.document.onkeyup=function(e){if(e.keyCode==27)wnd.close()}; wnd.document.close(); ele.parentNode.removeChild(ele); delete window[callback]; }; ele.src = 'http://api.microsofttranslator.com/V2/Ajax.svc/Translate?appId=94AFF88F4C2FC81CAC01CC555363A36CAAF4C66B&contentType=text/html&oncomplete='+callback+'&from=en&to=ru&text='+txt } })() | Добавлено: Окошко с переводом закрывается по esc. Можно конечно вместо var wnd = window.open ... использовать простой alert(o); Также, вместо wnd.document.write(...); можно использовать wnd.document.body.innerText=o; Добавлено: Condar На нижней панели статуса она работает нормально, так что вероятно это действительно баг. | Всего записей: 3793 | Зарегистр. 24-10-2005 | Отправлено: 13:26 08-12-2011 | Исправлено: LEX1, 14:39 08-12-2011 |
|