Générer des liens et désélectionner [Résolu]

Signaler
Messages postés
243
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
28 décembre 2008
-
Messages postés
243
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
28 décembre 2008
-
Bonjour,
Après avoir fouillé sur tout le site et sur google en vain,j'aurais 2 questions:

1)Première question:

J'ai une chaine de texte contenant des liens comme par exemple http://www.google.fr. Y a t-il un moyen de les formater automatiquements pour qu'il soient cliquables:
donc comme ça: [http://www.google.fr>
ou que ca soit automatique sur la page

2)Question:

J'ai une fonction qui met dans le press papier la sélection de la page
voir source ici: http://www.javascriptfr.com/infomsg_COPIER-SELECTION-DANS-PRESS-PAPIER_944397.aspx#4

J'aimerais qu'une fois la sélection mise dans le press papier que la sélection s'enlève comme si je cliquais un coup à côté.

merci pour votre aide

12 réponses

Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
32
ah... fallait le dire

<html>

du texte
   

</html>

    testé uniquement avec IE, mais pas loin pour les autres...



<hr />



Cordialement                Bul     [mon Site]     [M'écrire]



<hr />
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
38
Salut,

faut faire des regexp, str.replace(/(http:\/\/(\S+))/,'[$1 $1]');

un truc comme ca (j'ai plus fait de js depuis longtemps desole)

In a dream, I saw me, drop dead... U was there, U cried... It was just a dream, if I die, U won't cry, maybe, U'll be happy

Mon site (articles sur la programmation et programmes)
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
32
Bonjour,

pour la 1ère question, ce lien il faut l'ajouter "quelquepart" ? non ?
    dans la body par exemple ?
    donc avec innerHTML ou createElement+appendChild

pour la 2ème question.
    <textarea id="txt">exemple</textarea>
    <script type="text/javascript">
        // sélection pour l'essai      
        var t=document.getElementById("txt");
        t.select();
    </script>
   
très loin d'être sûr qu'on ne puisse pas faire mieux !!!

<hr />


Cordialement            Bul     [mon Site]     [M'écrire]



<hr />
Messages postés
246
Date d'inscription
vendredi 24 novembre 2006
Statut
Membre
Dernière intervention
21 décembre 2007
1
Salut
str.replace(/(http:\/\/(\S+))/,'[$1 $1]'); ne remplace que la premiere url il faut faire
str.replace(/(http:\/\/(\S+))/g,'[$1 $1]');
Messages postés
243
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
28 décembre 2008

Bonjour,

Le regex fonctionne mais si j'ai des codes couleurs avant ou dans l'url ca ne marche plus. C'est un peu plus embettant je pense.

pour la déselection j'ai pas réussi à le faire mais je cherche. je reviendrai un peu plus tard pour ca.
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
32
>>Le regex fonctionne

    si c'est déjà dans body, ça ne devrait pas être loin, effectivement
    je n'avais pas compris ça comme ça.

>>pour la déselection j'ai pas réussi
    tu as essayé ce que je te proposais ? car pour moi, ça marche.



<hr />



Cordialement                Bul     [mon Site]     [M'écrire]



<hr />
Messages postés
243
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
28 décembre 2008

>>déselection:
le problème c'est que j'utilise pas de textarea, c'est dans le body directement.

>>le regex:
Ce qui pourait aussi m'aller c'est de récupérer ce qu'il y a sous la souris et si ca corrspond à un lien et bien que ca s'ouvre comme un lien quand je clique. J'ai pas besoin que ca se voit que c'est un lien. Si c'est écrit comme un texte normal ça me va aussi.

Sinon c'est dans une chaine au format HTML mais dont les liens ne sont pas formaté avecdes codes couleurs un peu n'importe ou
Messages postés
243
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
28 décembre 2008

Merci ca marche pour la déselection.
J'ai juste pris la commande document.execCommand('unselect');
que j'ai mis après avoir mis le texte dans le press papier
Messages postés
246
Date d'inscription
vendredi 24 novembre 2006
Statut
Membre
Dernière intervention
21 décembre 2007
1
Salut
essai avec ce code si tu veux garder les couleurs de tes url:

<script langage="javascript">
function lien(){
var page = document.body.innerText;
page = page.replace(/(http:\/\/(\S+))/g,"$1");
document.body.innerHTML = page
}
function ouvrire(url){
window.location.href = url
}
</script>

http://google.fr
http://javascriptfr.com
Messages postés
243
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
28 décembre 2008

le problème c'est que ma page est vide au chargement
et les phrases vienent se mettrent au fur et à mesure que je les envoi
Messages postés
243
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
28 décembre 2008

ca va pas trop non:
j'envoi mon texte a la fonction ecriture qui se charge d'ajouter les lignes que je lui donne.

voici ma page

<% @LANGUAGE="JavaScript" %><html>
<head>
<meta http-equiv="Content-Language" content="fr">
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">

<title>mirc html</title>
</head>




<script language="JavaScript">


function bottom()
 {
 if ((document.body.scrollTop + document.body.clientHeight) == document.body.scrollHeight)
 return 'yes'
 }


function scroll()
  {
 if (bottom() == 'yes')
 scrollAuto();
  }


function scrollAuto()
  {
  window.scrollBy(0,100000);
  }


function ecriture(y)
  {
 var z = bottom();
  addHTML(document.body,'' + y + '');
 if (z == 'yes')
 scrollAuto();
  }


function ouvrire(url){
window.location.href = url
}


 


function ejs_nodroit()
  {
 return(false);
  }


document.oncontextmenu = ejs_nodroit;


function Remplace(expr,a,b) {
      var i=0
      while (i!=-1) {
         i=expr.indexOf(a,i);
         if (i>=0) {
            expr=expr.substring(0,i)+b+expr.substring(i+a.length);
            i+=b.length;
         }
      }
      return expr
   }




function addHTML(element, HTML) {
   var o = document.createElement("htmlSection");
   o.innerHTML = HTML;
   element.appendChild(o)
}


function getSelectedText(){
   if (window.getSelection){
      var str = window.getSelection();
   }else if (document.getSelection){
      var str = document.getSelection();
   }else {
      var str = document.selection.createRange().text;
   }
   if (str) {
      copyclipboard(str);
document.execCommand('unselect');
   }
}




function copyclipboard(intext)
{  window.clipboardData.setData('Text', intext);     }


</script>




<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" height="100%">
  <tr>
     <td width="100%" valign="bottom">





</html>
Messages postés
243
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
28 décembre 2008

Ne pas tenir compte de la fonction remplace