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 Artur Mendonça
      Olá amigos.
      espero que estejam todos bem.
       
      Estou tentando criar uma galeria de imagens e colocar nestas um botão para votação (Gosto como no Facebook).

      Já consegui criar a galeria e colocar o Like nas imagens, mas acontece que quando  as imagens passam para a linha de baixo o botão Like não acompanha a imagem.
       
      Junto uma imagem para exemplificar como está e como deveria ser.
       
      O CSS está assim
      h1 { text-align: center; color: forestgreen; margin: 30px 0 50px; } .container h2 { text-align: center; color: rgb(8, 8, 8); margin: 30px 0 50px; } .gallery { margin: 10px 50px; padding-right: 0px; padding-left: 0px; } .gallery img { width: 230px; padding: 0px; opacity: 0.5; filter: grayscale(10%); transition: 1s; margin-top: 10px; margin-left: 10px; margin-bottom: 10px; margin-right: 0px; border: 2px solid #ccc; border-radius: 10%; } .ilike { display: grid; border-radius: 10%; box-sizing: border-box; text-align: left; padding: 15px; font-size: 20px; vertical-align: top; position: absolute; z-index: 1000; margin-top: 10px; margin-left: 10px; overflow: hidden; color: white; } O código da página da galeria de fotos está assim:
      <div class="gallery"> <?php $sql = "SELECT * FROM tbl_gallery where aid=$aid"; $num_rows = mysqli_num_rows(mysqli_query($conectar, $sql)); $result = mysqli_query($conectar, $sql); while ($row = mysqli_fetch_array($result)) { $gimage = $row['gimages']; $fotoid = $row['gid']; $likes = $row['likes']; ?> <a href="páginapararegistarovoto" ?> "><i class="far fa-thumbs-up ilike" alt="Vote"> <?php echo $likes; ?> </i></a> <i class="inum" > <?php echo "Foto " . $fotoid; ?> </i> <?php echo "<a href='../fotos/$gimage' data-lightbox='mygallery' data-title='Foto n.º: $fotoid'><img src='../thumbnails/$gimage' class='pic'></a>"; } ?> </div>  
       
       

    • 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
×

Informação importante

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