Отключить определенные ключи в IE 6 - PullRequest
0 голосов
/ 12 сентября 2008

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

Long Edit:

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

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

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

Спасибо.

Ответы [ 3 ]

0 голосов
/ 12 сентября 2008

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

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

0 голосов
/ 28 апреля 2011

Я использую это решение 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();
        }
    }
});    

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

0 голосов
/ 12 сентября 2008

Для чего тебе это нужно? Потому что отключение 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> 

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

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

...