Ir para conteúdo

Arquivado

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

Diego Rinno

Obter texto selecionado na página

Recommended Posts

Boa tarde.

Preciso reconhecer o texto que foi selecionado dentro de uma publicação de um blog e então exibir uma popup para compartilhar no Facebook e no Twitter esse texto.

O problema é que eu já tentei algumas coisas e não tenho nem mais ideia do que fazer, pois nada funcionou. Se alguém puder me dar uma luz... segue abaixo as coisas que eu já tentei e não consegui fazer dar certo.

Tentei ativar as funções usando o .select() do jQuery e também no OnClick, mas nada funcionou:

EDIT: O que eu quero eu acabei de ver, é exatamente o que acontece no site do Tecmundo, dá uma olhada pra entender melhor. É só selecionar algum texto qualquer na publicação: http://www.tecmundo.com.br/patente/111775-6-patentes-tecnologias-loucas-nao-viraram-produtos-reais.htm?utm_source=tecmundo.com.br&utm_medium=home&utm_campaign=tv

function getTextoSelPag(){
  var s = "";
  if(window.getSelection){
    s = getSelection().toString();
  } else if (document.selection){
    s = document.selection.createRange().text;
  }
  return s;
}
$(document).ready(function(){
    $('html, body').select(function(){
        var texto;
        if(window.getSelection) {
            texto = String(window.getSelection());
        }else if(document.selection){
            texto = document.selection.createRange().text;
        }else{
            texto = "Seu browser não suporta isto!";
        }
        if(texto == '') texto = "Você deve selecionar algum texto para testar!";
        $('#colar').html(texto);
    });
});
$('selector').click(function(){
  var texto = $('textarea').get(0);
  var ss = texto.selectionStart; 
  var se = texto.selectionEnd;
  var tf = texto.value.substring(ss,se);
  alert(tf);
});
$(document).ready(function(){
	$("p").select(function(){
		alert("Texto selecionado!");
	});
});

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acabo de conseguir a solução e ficou dessa forma pra quem tiver a mesma dúvida:

if(!window.Texto){
	Texto = {};
}

Texto.Selector = {};
Texto.Selector.getSelected = function(){
	var t = '';
	if(window.getSelection){
		t = window.getSelection();
	}else if(document.getSelection){
		t = document.getSelection();
	}else if(document.selection){
		t = document.selection.createRange().text;
	}
	return t;
}

Texto.Selector.mouseup = function(){
	var st = Texto.Selector.getSelected();
	if(st!=''){
		alert("Texto selecionado:\n"+st);
	}
}

$(document).ready(function(){
	$(document).bind("mouseup", Texto.Selector.mouseup);
});

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por ment0r
      Boa tarde à todos.
      Pessoal, estou com o seguinte problema: preciso imprimir uma ficha mensal de trabalho, mas quando vou imprimir, a página para impressão sai "cortada".
       

       
      A imagem acima representa a ficha que preciso imprimir, está tudo ok com essa (tirei o cabeçalho, pois não vinha ao caso)
       

       
      Vejam como fica na impressão: com aproximadamente 2/3 da largura.
       
      <style> body { width: 100%; height: 100%; margin: 0; padding: 0; background-color: #FAFAFA; } * { box-sizing: border-box; -moz-box-sizing: border-box; } .page { width: 210mm; min-height: 297mm; padding: 4mm; margin: 1mm auto; border: 1px #D3D3D3 solid; border-radius: 5px; background: white; box-shadow: 0 0 5px rgba(0, 0, 0, 0.1); } /*.subpage { padding: 0.5cm; border: 0px red solid; height: 257mm; outline: 2cm #FFEAEA solid; }*/ .cliente { margin-top: 30px; font-size: 20px; } th {font-size: 14px; } td {font-size: 12px; } .logo {height: 64px; margin: 20px 0px 0px 20px;} .font-cabecalho {font-size: 12px; margin-left: 20px; text-align: center; margin: 20px 0px 0px 20px;} @page { width: 100%; height: 100%; margin: 0; padding: 0; } @media print { html, body { width: 210mm; height: 297mm; } .page { margin: 0; border: initial; border-radius: initial; width: initial; min-height: initial; box-shadow: initial; background: initial; page-break-after: always; } } </style> Código CSS da página.
       
      O que pode ser? Como faço pra deixar a página de impressão igual à página PHP? Obrigado desde já à todos.

      Um abraço.
       
    • Por Will13
      Olá pessoal.
      Existe alguma maneira de criar um contorno em um texto sem que esse contorno da fonte fique arredondado?
      Exemplo: Com a ferramenta texto digitei a letra L e adicionei um estilo de camada / traçado.
      Daí todos o cantos criados pelo contorno ficam arredondados... Gostaria que os cantos ficassem com ângulos aguçados, seguindo os mesmos ângulos de 90° da fonte, sem suavização ou arredondamento.
      Entendem?
    • Por betogames
      Olá amigos, estou querendo saber, como colocar um numero limite para que a paginação funcione, exemplo: Quero que a pagina exiba no maximo 40 fotos e depois disso comece a paginação dos novos 40 fotos. Pagina 1= 1 a 40 fotos; pagina 2= 41 a 80 fotos............

      Vou enviar o codigo que fiz e se possivel alguém acerte pra mim, preciso muito disso:
       
    • Por Alvaro_php
      Pessoal boa noite
      Estou começando no PHP e estou com uma dúvida para poder enviar uma confirmação de uma página para outra e não quero mandar pela URL, para não ficar visível ao usuário
      Tenho um captcha e nele estou fazendo uma comparação para poder jogar para uma outra página , caso o código esteja certo
      <?php session_start();
          if( $_SESSION['captcha'] == $_POST['captcha']){
          header("location: emitir_titulo1.php");
          }else{
              echo "<h1>Erro - Código digitado errado</h1>";
          }
      ?>
      Até ai tudo bem esta fazendo certinho, o que eu quero é que na minha emitir_titulo1.php eu consiga fazer uma identificação qqer, onde demonstre que o usuário passou pelo captcha e não jogou o caminho completo até a página emitir_titulo1
      Tentei abri a session no emitir_titulo1 porém não deu certo, pois ela vem em branco, e quando coloco o caminho inteiro da página ele abre normalmente
      Tentei usar o $_POST, más não tem como ou não sei enviar mesmo, pois estou chamando a página pelo header
       
       
      Então mudei e tentei criar um arquivo txt com a palavra confirmado
      <?php session_start();
          if( $_SESSION['captcha'] == $_POST['captcha']){
              $fp = fopen("seguranca.txt","a+");
              $escreve = fwrite($ft,"confirmado");
              fclose($ft);
              header ("location: emitir_titulo1.php");
          }else{
              echo "<h1>Erro - Código digitado errado</h1>";
          }
      ?>
       
      e na página emitir_titulo1.php coloquei
      <?php  
          $arquivo = "seguranca.txt";
          $ft=fopen($arquivo,"r");
          $conteudo=fread($ft,filesize($arquivo));
          fclose($ft);
          
          if ($conteudo == 'confirmado')
          {
              unlink("seguranca.txt");
          }else{
              header("location: verificacao.php");
          }
      ?>
       
      Quando a página para executar e digito o código de verificação do captcha, aparece a mensagem abaixo
      Warning: fwrite(): supplied argument is not a valid stream resource in caminhodomeuservidor\valida.php on line 5
      Warning: fclose(): supplied argument is not a valid stream resource in caminhodomeuservidor\valida.php on line 6
      Warning: Cannot modify header information - headers already sent by (output started at caminhodomeuservidor\valida.php:5) in caminhodomeuservidor\valida.php on line 7
       
      Más quando coloco o caminho completo da minha página emitir_titulo1.php, ele continua abrindo a página normalmente, e o arquivo gerado esta em branco
       
      Alguém pode me dar uma ajuda, estou o dia todo nisso, o bom é que pesquisei bastante coisa, porém não tenho muito tempo para finalizar
       
      Desde já agradeço a todos
    • Por ramonjba
      Olá pessoal. Estou desenvolvendo uma especie de monitoramento, estou utilizando o MATERIALIZE, desta forma, optei por não trabalhar com responsividade, pois preciso do máximo de informações possíveis na tela, seja desktop ou mobile, fazendo o ajuste de zoom se preciso. Fiquei cerca de dois anos sem programar, eu havia feito esse projeto para meu TCC, porém após finalizar, deixei parado e acabei perdendo. Com o tempo, algumas ideias em relação ao projeto também mudaram, e para apresentar a informações das `Torres de Internet`, utilizei o collapsible-header conforme imagem `projeto_monitor`, pois, ao clicar em cima do `equipamento`, ele apresenta informações relacionadas a ele. Estou tendo problemas para alinhar estes `collapsible-header ` pois preciso preencher toda a tela, sem deixar espaçamentos. Para isso, fiz uma classe CSS contendo: 
       
      .row .col.quadroTorre1 { margin-top: -10%; margin-bottom: 10%; } .row .col.quadroTorre2 { margin-top: -7.3%; margin-bottom: 10%; } .row .col.quadroTorre3 { margin-top: -30%; margin-bottom: 10%; } .row .col.quadroTorre4 { margin-top: -1.7%; margin-bottom: 10%; }  
      E fiz uma verificação no código, para ver qual o numero de equipamentos que a `Torre` que está acima tem. Porém, como podemos observar, na segunda linha funcionou preenchendo os espaços, mas pulando para a terceira linha, já possui uma lacuna em branco, onde deveria estar situado o elemento. Além disso, os elementos da segunda linha, acabam se sobrepondo, conforme imagem `projeto_sobrepor`. Como fiquei cerca de 2 anos sem programar, estou encontrando algumas dificuldades e empacando nelas. A parte de front-end é a que gera maior dificuldade. Se alguém puder me auxiliar, agradeço. 
       
      Edit: Se alguém tiver dicas de como posso melhorar o preenchimento das lacunas em branco. 
       


×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.