Вопрос

Мне нужно отключить определенные клавиши (Ctrl и Backspace) в Internet Explorer 6.Есть ли способ взломать реестр для этого?Это должен быть IE6.Спасибо.

Длинная Правка:

@apandit:Упс.Мне нужно более конкретно рассказать о том, что такое backspace.Когда я говорю отключить backspace, я имею в виду отключить возможность Backspace имитировать кнопку "Назад в браузере".В IE нажатие Backspace, когда фокус находится не в поле ввода текста, эквивалентно нажатию Back (переход на предыдущую страницу).

Что касается клавиши Ctrl.Есть несколько страниц, на которых есть ссылки, создающие новые окна IE.У меня включен блокировщик всплывающих окон, который блокирует это.Но нажатие клавиши Ctrl приводит к запуску нового окна.

Это относится к киоскному приложению, которое в настоящее время является веб-приложением.В настоящее время у клиентов нет средств, чтобы сделать свой сайт удобным для работы с киосками.Такие вещи, как фильтрация URL-адресов и отключение поля ввода URL-адреса, уже выполнены.

Спасибо.

Это было полезно?

Решение

Для какой цели вам это нужно?Потому что отключить backspace было бы адом для ввода URL-адресов, электронных писем и т.д.

Мы могли бы порекомендовать другие обходные пути, если бы лучше знали проблему.

ПРАВКА 1:
На этом веб-сайте, кажется, есть некоторая информация о том, как это делается.В настоящее время я не могу это проверить, но я изучу это:http://www.ozzu.com/programming-forum/disable-key-and-back-t44867.html

Правка 2:
На этом веб-сайте есть несколько ключевых кодов:http://www.advscheduler.com/docs/manual/type_sendkeys.html Кажется, BACKSPACE равен 08.

ПРАВКА 3:
Нашел еще какой-то код для блокировки, проверьте это:

<script type="text/javascript">var sType = "keypress";</script> 

<!--[if IE]> 
<script type="text/javascript">sType = "keydown";</script> 
<![endif]--> 

<script type="text/javascript"> 
fIntercept = function(e) { 
   // alert(e.keyCode);
  e = e || event.e; 
  if (e.keyCode == 116) { 
   // When F5 is pressed 
   fCancel(e); 
  } else if (e.ctrlKey && (e.keyCode == 0 || e.keyCode == 82)) { 
   // When ctrl is pressed with R 
   fCancel(e); 
  } 
}; 

fCancel = function(e) { 
  if (e.preventDefault) { 
   e.stopPropagation(); 
   e.preventDefault(); 
  } else { 
   e.keyCode = 0; 
   e.returnValue = false; 
   e.cancelBubble = true; 
  } 
  return false; 
}; 

fAddEvent = function(obj, type, fn) { 
  if (obj.addEventListener) { 
   obj.addEventListener(type, fn, false); 
  } else { 
   obj['e'+type+fn] = fn; 
   obj[type+fn] = function() { 
    obj['e'+type+fn](window.event); 
   } 
   obj.attachEvent('on'+type, obj[type+fn]); 
  } 
}; 


fAddEvent(document, sType, fIntercept); 
</script> 

Хорошо, теперь у вас должно быть все, что вам нужно для этого.Чтобы отключить backspace, введите код клавиши 08.Вероятно, вы можете просто использовать код, который я опубликовал, только с небольшими изменениями...:\

Попробуйте и посмотрите, то ли это, что вам было нужно.(Я надеюсь, вы знаете, как использовать Javascript.)

Другие советы

Вы не можете сделать это с веб-страницы.Одной из основных целей веб-браузера является защита пользователей от Интернета.Они определяют очень специфический набор функций, которые могут выполнять веб-сайты, и кнопок отключения нет в списке.

С другой стороны, если вы сетевой администратор и просто хотите пообщаться со своими пользователями, вы могли бы сделать это с помощью какого-нибудь настольного программного обеспечения.Но я бы не стал задерживать дыхание.

Я использую это решение jQuery (протестировано на ie6 и firefox 3.6).:

$(document).keydown(function(e) {
    var tag = e.target.tagName;
    var ro = e.target.readOnly;
    var type = e.target.type;
    var tags = {
        INPUT : '',
        TEXTAREA : ''
    };
    if (e.keyCode == 8) {// backspace
        if (!(tag in tags && !ro && /text/.test(type))) {
            e.stopPropagation();
            e.preventDefault();
        }
    }
});    

надеюсь, это кому-то поможет

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top