Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 25.11.2010, 08:32
Новичок на форуме
Отправить личное сообщение для a3work Посмотреть профиль Найти все сообщения от a3work
 
Регистрация: 30.11.2009
Сообщений: 3

Opera UserJS перевод слов
Вот UserJS контекстного яндекс-перевода для Opera, может быть кому-то пригодится. Если у кого-нибудь есть похожий, просьба выложить.
(function(){
	var doc = null;
	var div = null;
	var g_width = 300;
	var g_height = 400;
	
	function send_request(url){
		if ( document.getElementById("ajax_common")) {
			document.getElementById("ajax_common").src = url;
		} else {
			iframe = document.createElement("iframe");
			with(iframe) {
				width = g_width;
				height = g_height;
				frameBorder = 'no';
				scrolling = 'no';
				id = 'ajax_common';
				src = url;
			}
			div.appendChild(iframe);
		}
	}

	function normalize_coord(x,y) {
		var wwidth = (window.innerWidth) ? window.innerWidth: ((document.all)?document.body.offsetWidth:null);
		var wheight = window.innerHeight;
		if ( doc.documentElement.scrollTop == 0) {
			y += doc.body.scrollTop;
			wheight += doc.body.scrollTop;
		} else {
			y += doc.documentElement.scrollTop;
			wheight += doc.documentElement.scrollTop;
		}
		if ( x + g_width >= wwidth) {
			x -= x + g_width + 20 - wwidth;
		}
		if ( y + g_height >= wheight) {
			y -=  y + g_height + 60 - wheight;
		}
		return { "x": x, "y": y};
	}
	
	function create_div(x, y) {
		div = document.getElementById("dictionary_answer");


		if (div){
			coord = normalize_coord(x,y)
			with(div) {
				style.top = (coord.y + 15) + "px";
				style.left = (coord.x + 15) + "px";
			}
		} else {
			div = document.createElement("div");
			coord = normalize_coord(x,y)
			with(div) {
				id = "dictionary_answer";
				style.position="absolute";
				style.zIndex = "999";
				style.top = (coord.y + 15) + "px";
				style.left = (coord.x + 15) + "px";
				style.width = g_width + "px";
				style.padding = "10px";
				style.height = g_height + "px";
				style.background="#fff";
				style.border = "2px solid #ddd";

			}
			doc.body.appendChild(div);
		}
		div.style.display="block";
	}

	window.addEventListener("load", function(){

		doc = document;
		window.addEventListener("mousemove", function() {
			x = (event.clientX) ?  event.clientX : ((event.pageX) ? event.pageX : event.screenX);
			y = (event.clientY) ? (event.clientY) : (event.pageY);
		}, false);
		window.addEventListener("dblclick", function() {
			event.preventDefault();
		}, false);
		window.addEventListener("mouseup", function() {
			event.preventDefault();
			selection = window.getSelection ? window.getSelection() : document.selection;
			if (selection > "") {
				create_div( x, y);
				send_request("http://m.slovari.yandex.ru/search.xml?lang=en-ru-en&text="+ selection +"&where=3");
			} else {
				if (div) {
					div.style.display="none";
				}
			}
		}, false);
	},false);
})();
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сумасшедшая утечка памяти в Opera при использовании javascript в IFRAME Маэстро Opera, Safari и др. 12 18.11.2010 12:29
Как в opera узнать, что popup заблокирован? Kirrr Общие вопросы Javascript 0 06.08.2010 21:00
return в opera lavrey Events/DOM/Window 2 17.07.2010 17:26
Opera отдаёт неправильный код функциональных клавиш. NT Man Opera, Safari и др. 1 19.01.2010 02:45
Не возвращается XML-ответ в Opera после AJAX-запроса Yojik Общие вопросы Javascript 4 17.03.2008 05:56