Пепяка.нет — Сетевой маркетинг


Март 12th, 2009

Ошибки или Orphus на jQuery

mistake

Понадобилось недавно сделать утилиту практически ничем не отличающуюся от Orphus, но только используя  jQuery & jQueryUI.

Не без помощи блога SimpleCoding.org была написана вот такая утилитка:

$(function(){
var isCtrl = false;
$(document).keyup(function (e) {
	if(e.which == 17) isCtrl=false;
}).keydown(function (e) {
	if(e.which == 17) isCtrl=true;
	if(e.which == 13 && isCtrl == true) {
		var selText = false;
		if (window.getSelection) {
			selText = window.getSelection().toString();
		} else if (document.selection && document.selection.createRange) {
			selText = document.selection.createRange().text;
		}

		if (selText !== false) {
			if (selText.length < = 3) {
				alert('Необходимо выделить больше текста');
			} else if (selText.length > 70) {
				alert('Выделено слишком много текста');
			} else {
				$('#content').append('<div class="broco-orpho">&nbsp;</div>');
				$('.broco-orpho').dialog({
					title:'Broco orpho',
					resizable:false,
					width:400,
					minHeight:100,
					bgiframe:true,
					close: function(event, ui) {
						$('.broco-orpho').dialog('destroy')
						$('.broco-orpho').remove()
					}
				});
				$('.broco-orpho').html('<p class="broco-orpho-text">Текст с ошибкой: <span>'+selText+'</span></p>')
				$('.broco-orpho').append('<p id="broco-orpho-send" class="broco-orpho-send">Отправить</p>');
				$('.broco-orpho-send').bind('click', function(event){
					$.ajax({
						type: "POST",
						url: "errors.php",
						data: {text:selText, pageurl:window.location.href},
						success: function(msg) {
							$('.broco-orpho').text(''+msg);
						}
					})
				});

			}

		}
	}
});
});

Тестирование проходило на платформах Mac OS (Opera9, Safari3, FireFox3) & Win (Chrome, FireFox3, Safari 3, IE6, IE7, Opera9)

Библиотеки:

Будни

Комментарии (2) »

  1. 1
    vladm
    Январь 8, 2010 @ 23:09

    [code]
    $(document).keyup(function (e) {
    if(e.which == 17) isCtrl=false;
    }).keydown(function (e) {
    if(e.which == 17) isCtrl=true;
    if(e.which == 13 && isCtrl == true) {
    [/code]
    Скажите, зачем все так сложно? Почему не просто
    [code]
    $(document).keypress(function(e) {
    if ((e.ctrlKey == true) && (e.keyCode == 13)) {
    [/code]

  2. 2
    Март 3, 2010 @ 19:43

    vladm, да спасибо, не без вашей помощи ;) давно это было даже и не вспомню почему именно так :(

Оставить комментарий