Ir para conteúdo
Fórum Script Brasil
  • 0

Personalizar Botão Direito


Guest Kaka

Pergunta

Tudo bem pessoal ???

Venho aqui levantar uma questão para os mais entendidos.

Gostaria de personalizar o clique do botão direito do mouse como acontece em alguns softwares.

Nem é necessário colocar imagens nem nada, apenas deixar 2 itens: copiar e colar.

Alguém sabe se isso é possível ???

Obrigado.

Link para o comentário
Compartilhar em outros sites

Posts Recomendados

  • 0

Olhe bem... não cheguei a ver o exemplo, mas se eu entendi bem você quer um menu que abra com o botão direito apenas para copiar e colar né...

Olha fazer menus para o botão direito é fácil, mas eu não sei se existe uma função em javascript que copie um texto ou cole... sinceramente, talves VbScript... mas em Javascript eu nunca vi... logo aparece um esperto aí e mostra pra nós... mas até isso acontecer considere isso impossível.. ohmy.gif

Link para o comentário
Compartilhar em outros sites

  • 0

Bom eu não diria isso você já viu aqueles editores de texto em html ? os bbcode

eles usam javascript da pra copiar colar grifar trocar a fonte tamanho etc...

veja um exemplo de copiar e colar:

<html>

<head>

<script language="javascript">

function exec(c,i,v){

visual.focus();

var sel = document.selection.createRange();

document.execCommand(c, i, v);

visual.focus();

}

</script>

<div id="visual" style="border: 1px solid #000000; padding: 30px; overflow: scroll; height: 70%; width: 70%;" contenteditable ></div>

<title>Untitled Document</title>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

</head>

<body>

<p>&nbsp;</p>

<BUTTON ID="Copiar" TITLE="Copiar (Ctrl+C)" onclick='exec("Copy");'>Copiar </BUTTON> <BUTTON ID="Colar" TITLE="Colar (Ctrl+V)" onclick='exec("Paste");'>Colar</BUTTON> 

<p>&nbsp;</p>

</body>

</html>

Link para o comentário
Compartilhar em outros sites

  • 0

você entendeu exatamente o que eu quero. O link que mandei mostra exatamente um menu grafico que surge quando o usuário clica com o botao direito.

Mas como você mesmo disse, vamos esperar alguma solução (função em javascript ou vbscript) que permita copiar e colar.

Abraços

Link para o comentário
Compartilhar em outros sites

  • 0

Não querendo muito encher a paciencia de vocês, mas já enchendo, eu não entendi esse código, o que são aqueles 3 parametros passados pela função ???

alguém pode explicar melhor ??

Obrigado

Link para o comentário
Compartilhar em outros sites

  • 0

Oh fabyo me ajuda em uma coisa cara.

Esse código que você postou copia e cola SOMENTE palavras que estejam digitadas dentro do DIV chamado visual. Para copiar palavras que estajam na página todo eu coloco um div genérico e tudo beleza.

Minha dificuldade está na hora de colar, pois eu tenho um formulário que contem varios campos e não sei como fazer para ele pegar o focus no campo clicado com o botão direito pelo usuário. Entendeu minha dúvida ???

Obrigado.

Link para o comentário
Compartilhar em outros sites

  • 0
Oh fabyo me ajuda em uma coisa cara.

Esse código que você postou copia e cola SOMENTE palavras que estejam digitadas dentro do DIV chamado visual. Para copiar palavras que estajam na página todo eu coloco um div genérico e tudo beleza.

Minha dificuldade está na hora de colar, pois eu tenho um formulário que contem varios campos e não sei como fazer para ele pegar o focus no campo clicado com o botão direito pelo usuário. Entendeu minha dúvida ???

Obrigado.

não entendi sua pergunta pois ele copia para o clipbord e você pode usar o botao direito normal pra colar,não apenas no form mas em qualquer lugar

Link para o comentário
Compartilhar em outros sites

  • 0

Bom fabyo vou explicar melhor.

Suponhamos que eu tenha 3 campos no meu formulário:

<input type="text" name="nome">

<input type="text" name="escola">

<input type="text" name="comentario">

Aquele função que você colocou não funciona, porque ela só cola as coisas dentro do "visual", ele seta o focus no visual e copia as coisas de la.

Eu preciso que quando ele clicar dentro do text nome, ele cole dentro do nome.

Quando clicar com o botão direito dentro do text escola, cole dentro de escola.

E assim por diante.

Entendeu ???

Link para o comentário
Compartilhar em outros sites

  • 0

ata entendi o que você falou , na verdade colar cola sim, em qualquer lugar com o botao direito do mouse, mas com a função colar não cola

pera ai vou ver se tem jeito, mas qualquer coisa o Moderador Crystian tiver por ai ele da uma força também

Link para o comentário
Compartilhar em outros sites

  • 0

Me diz uma coisa:

Você quer personalizar o menu direito com as funcoes copiar e colar , para quando clicarem nos inputs , é isso?

Vou ver o que posso fazer!

- ---------

--- -----------

------- ---------------

----------- ------------------

------------------------------------

Isso ta dificil ninguém ainda consegui responder!

Link para o comentário
Compartilhar em outros sites

  • 0

Desculpa pela demora na resposta, mas estava sem net ontem.

Grande Fabyo, vamos ver se conseguimos ajudar o(a) Kaka.

Vamos ver se entendi, tu quer um menu q é aberto quando clica com o botão direito do mouse, e nesse menu tenha as opções copiar, colar, recortar entre outras?!? Bom se tu quiser fazer uma função q só funcione no IE (no caso de você trabalhar numa empresa e o q você está fazendo é só internamente) você pode continuar a usar a function q o fabyo te passou, e aí tu só faz uma verificação pra saber qual campo foi clicado. É só você passar o evento do mouse e pegar o name.

esse código retorna o elemento q recebeu o click do mouse no IE(evento.srcElement) e NN(evento.target). Para você pegar o nome do elemento é só colocar um .name normal e executar o execCommand no campo desejado.

Agora se você quiser fazer um q funcione no Mozilla fica mais complicado, porque teoricamente você só conseguiria copiar e colar o que estivesse na página q você está executando o script. É um código bem complicado, mas possível de se fazer. Se quiser tentar fazer posso te dar umas dicas e te ajudar em algumas coisas.

Qualquer dúvida posta ae...

Abraço

Crystian

Link para o comentário
Compartilhar em outros sites

  • 0

Opa Crystian beleza ??

Bom cara, primeiramente não tem problema se funcionar só em IE.

Recortar necessário. Preciso somente de "copiar" e "colar".

Digamos que a parte visual (quando o usuário clica com o botão direito já está aparecendo somente "copiar e colar".

Eu não entendo muito de javascript, gostaria de saber como fazer para chamar o "IE(evento.srcElement)" que você citou.

Pode me dar um exemplo seguindo o código postado pelo Fabyo ??

Obrigado !!!

Link para o comentário
Compartilhar em outros sites

  • 0

opa Kaka o menu com o botao direito ta ai só arrumar ele pra funcionar com as funções la e com a ajuda do crystian

<html>

<head>

<title>Botao direito</title>

<style type="text/css">

<!--

  body, td {font: 80% verdana}

  #menu {background-color: menu; border-width: 2px; border-style: outset;

        visibility: hidden; position: absolute; top: 10px; left: 10px} 

  #links td {cursor: default; text-indent: 1em}

//-->

</style>

</head>

<body>

<div id="menu">

<table id="links">

  <tr>

    <td title="Recortar (Ctrl+X)" onclick='exec("Cut");' onmouseover="cor1(this)"

    onmouseout="cor2(this)">Recortar</td>  </tr>

  <tr>

    <td title="Copiar (Ctrl+C)" onclick='exec("Copy");' onmouseover="cor1(this)"

    onmouseout="cor2(this)">Copiar</td>  </tr>

 

<tr><td title="Colar (Ctrl+V)" onclick='exec("Paste");' onmouseover="cor1(this)"

    onmouseout="cor2(this)">Colar</td>  </tr>

</table>

</div>

<script type="text/javascript">

<!--

  function mostrar(){

    window.event.returnValue = false;

    menu.style.visibility = 'visible';

    menu.style.top = window.event.clientY;

    menu.style.left = window.event.clientX;   

  }

 

  function ocultar(){

    if(window.event.srcElement.tagName == "BODY"){

      menu.style.visibility = 'hidden';

    } 

  }

 

  function cor1(obj){

    obj.style.backgroundColor = 'highlight';

    obj.style.color = 'white';

  }

 

  function cor2(obj){

    obj.style.backgroundColor = 'menu';

    obj.style.color = 'black';

  }

 

  document.oncontextmenu = mostrar;

  document.onclick = ocultar;

//-->

</script>

</body>

</html>

Link para o comentário
Compartilhar em outros sites

  • 0

Fala Fabyo !!

Ficou legal hein cara. Aquele link que mandei aquele dia, o script ficou meio pesado. Esse ai ficou bem rápido.

Agora quando o Crystian ensinar como faz pra chamar o nome do campo finalmente poderemos dar por encerrado. hehehe

Valeu pela força cara.

Link para o comentário
Compartilhar em outros sites

  • 0

<script type="text/javascript">
function click(evt){
	var obj = evt.srcElement;
}
</script>
<input type="text" name="teste" onclick="click(event);">

Como não tenho o IE pra testar, vou precisar da ajuda de vocês pra vocês irem fazendo. A função acima atribui o objeto q recebe o evento do click do mouse.

Então eu acredito q tu pode colocar essa função nos campos q você quer e depois chamar a function do Fabyo, testa e depois me avisa...

PS: Se cadastra, não demora nada...

Abraço

Crystian

Link para o comentário
Compartilhar em outros sites

  • 0

E ae Chrystian ... cara não tá funcionando. Coloquei um alert dentro da função só pra fazer um teste, mas ele não tá chamando nada quando você clica dentro do text.

Vamos aguardar pra ver se o Fabyo consegue alguma coisa !!!

PS: Já me cadastrei ... hehe

Valeu pela força.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...