Ir ao conteúdo

Macro de texto em JavaScript


sbryan2

Posts recomendados

Postado

Olá gostaria de saber se dá pra fazer um macro de texto em JavaScript.

Seria assim:

-Várias caixas de texto, onde se eu digitar um atalho pré-configurado (shift + 1 ou whatever), irá aparecer o texto da caixa 1. Caso eu digite shift + 2 irá aparecer o texto da caixa 2. Como um macro de texto comum mesmo.

Eu nunca vi algo assim pelo menos em JavaScript, caso não seja possível gostaria que me ajudassem em outra linguagem para que rode num página normal da web ;)! Desde já agradeço!

Postado

Você pode configurar um vetor com esses textos pré-configurados no inicio do js, e capturar os eventos de teclado da página. Consulte a tabela dos códigos ASCII , sabendo que tem diferença pra keydown e keypress. Em js existe uma propriedade pro objeto de evento, que já aponta se o Ctrl ou Shift está pressionado, o que facilita MUITO sua vida.

A partir do evento capturado, posicione o texto desejado no objeto correspondente.

Só não sei se tem como capturar eventos de uma div, ou um form, pro exemplo. Talvez seja necessário adicionar a captura de eventos para cada input da tela...

Qualquer dúvida poste novamente!

Postado

Não, os textos serão livres para ser inserido e em seguida colados. O lance da keypress eu já sei, tenho um script que me informa o value de cada atalho, o problema é que eu não se escrever o código =/

Postado


<html>
<head>
<script type="text/javascript" charset="utf-8">
var matchingShifted = new Object;
matchingShifted['!'] = '1';
matchingShifted['@'] = '2';
matchingShifted['#'] = '3';
matchingShifted['$'] = '4';
matchingShifted['%'] = '5';
matchingShifted['"'] = '6';
matchingShifted['&'] = '7';
matchingShifted['*'] = '8';
matchingShifted['('] = '9';
matchingShifted[')'] = '0';

function findPreset(field, event){
if(event.shiftKey){
var whichCode = (window.Event) ? event.which : event.keyCode;
var entered = String.fromCharCode(whichCode);
var inputDesired = document.getElementById('input'+ matchingShifted[entered]);
if(inputDesired == undefined || inputDesired == null){
alert('Nao ha campo correspondente para esse atalho!');
return false;
}else{
field.value = inputDesired.value;
return false;
}
}else {
return true;
}
}
</script>
</head>
<body>
<input id="input1" onkeypress="return findPreset(this, event)">
<input id="input2" onkeypress="return findPreset(this, event)">
<input id="input3" onkeypress="return findPreset(this, event)">
</body>
</html>

Fiz o teste,e tá funcionando!

Só pra você ter uma noção do que fazer. Não consegui pensar rápido em uma solução melhor pro mapa de correspondentes, mas se você matutar um pouco, certeza que sai algo decente.

Qualquer dúvida, pergunte!

Postado

Nossa cara era isso mesmo, o problema que é impossível eu definir isso para fora da página.... obrigado pela ajuda e podem fechar o tópico u.u

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!