[RESOLVIDO]Disable backspace

2 respostas
afonso.avr

Olá…
Estou começando a desenvolver com javafx.
Minha aplicação tem o ituito de montar um browser para rodar uma aplicação web.

Sim! É algo fácil…

O que eu preciso é desabilitar os eventos…
ex: desabilitar o evento que volta à página anterior…

existe algo nativo do javafx para dasabilitar tais eventos???

Obrigado…

2 Respostas

afonso.avr

Uma solução, é desabilitar o serviço na aplicação..

Ex: A aplicação impedir de voltar à pagina anterior por mio de javascript.

window.history.forward(1);

var message="Sorry, right-click has been disabled"; 
/////////////////////////////////// Functions
function clickIE() 
{
  if (document.all) 
  {
    (message);
    return false;
  }
} 

function clickNS(e) 
{
  if (document.layers||(document.getElementById&&!document.all)) 
  { 
    if (e.which==2||e.which==3) 
    {
      (message);
      return false;
    }
  }
} 

function cancelBack()
{
  if(window.event && window.event.keyCode == 116)
  { // Capture and remap F5
    window.event.keyCode = 505;
  }
  if(window.event && window.event.keyCode == 505)
  { // New action for F5
    return false;
    // Must return false or the browser will refresh anyway
  }  
  
  // 8 backspace, 37 left arrow, 39 right arrow, 116  F5, 122 F11, CTRL-N, CTRL-R
  if( (
         (window.event.keyCode == 8) 
      || (window.event.keyCode == 37 && window.event.altKey) 
      || (window.event.keyCode == 39 && window.event.altKey)
      )
  && (event.srcElement.form == null || event.srcElement.isTextEdit == false))
  {
    event.cancelBubble = true;
    event.returnValue = false;
    //alert('Backspace, Alt+leftarrow, or Alt+rightarrow called');
  }
  else if(
         (window.event.keyCode == 116 )
      || (window.event.keyCode == 122)
      || (window.event.ctrlKey && (window.event.keyCode == 78 || window.event.keyCode == 82)))
  {
    event.cancelBubble = true;
    event.returnValue = false;
    //alert('F5, F11, Ctrl+N, or Ctrl+R called');
  }      
}
/////////////////////////////////// Calls

if (document.layers) 
{
  document.captureEvents(Event.MOUSEDOWN);document.onmousedown=clickNS;
} 
else
{
  document.onmouseup=clickNS;document.oncontextmenu=clickIE;
} 

document.oncontextmenu=new Function("return false") 

document.onkeydown=cancelBack;

É uma solução.. Afinal o browser é apenas um cliente, e tais tratamentos devem ser feitos na aplicação..

afonso.avr

Outra solução é desabilitar o botão...

Porém há outro problema... Nenhuma funcionalidade do botão irá funcionar... aí é tratar as condições...
WebView view = new WebView();
    view.addEventFilter(KeyEvent.KEY_PRESSED,
                new EventHandler<KeyEvent>() {

                    @Override
                    public void handle(javafx.scene.input.KeyEvent event) {
                        if (event.getCode() == KeyCode.BACK_SPACE) {
                            event.consume(); // do nothing
                        }
                    }
                });
Criado 25 de julho de 2012
Ultima resposta 26 de jul. de 2012
Respostas 2
Participantes 1