Onclick sur FF onmouseover sur IE ?

Résolu
cs_caviar Messages postés 329 Date d'inscription samedi 4 janvier 2003 Statut Membre Dernière intervention 29 mars 2015 - 17 sept. 2007 à 09:49
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 - 17 sept. 2007 à 15:15
    Saluté ... j'ai un petit problème entre IE et FF (pour changer ... lol) j'aimerai qu'une fonction se déclenche sur l'événement onclick si on est sur FF et on mouseover si on est sur IE ... mais je ne sais pas comment faire car ma fonction est dans le tag de mon html ... je pense que c'est tout con mais je ne sais pas comment faire ... voici mon code (au passagre ça permet de faire une recherche sur une partie surlignée du texte ;) )

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
  <style type="text/css">
.surligne  {
   background-color: #ffa;
  }
</style>
  <meta http-equiv="content-type" content="text/html; charset=windows-1250">
  <meta name="generator" content="PSPad editor, www.pspad.com">
  <title></title>
  <SCRIPT>
  function getSelectedText(){
 
        var selectedText = '';
     
        if (document.getSelection){
                selectedText = document.getSelection();
        } else if(document.selection){
                selectedText = document.selection.createRange().text;
        };
      //  alert (selectedText);
        return selectedText;
}
  </script>
 
   <script type"text/javascript">
function recherche(chaine, doc)
  {
 // alert (chaine);
  var i=posChaine=posTag=finTag=n=0;doc1=doc2=''
  //doc1 : texte avant un tag
  //doc2 : texte final
 // var doc = document.body.innerHTML;
  el=''+chaine+''
  //console.log(chaine);
  //alert (chaine);
  if(chaine==''){ document.body.innerHTML = docload; }
  while(doc!='' && n<999)// n pour éviter la boucle infinie
    {
    posTag=doc.indexOf('<') //position d'un début de balise HTML
    doc1=doc.substr(0,posTag) // bout de texte avant un tag
    while(doc1.indexOf(chaine)!=-1 && i<99) //tant qu'on trouve une occurence de la chaine
      {
      posChaine=doc1.indexOf(chaine); // position occurence trouvée
      doc2+=doc1.substr(0,posChaine)+el // texte avant occurence +  élément ajouté
      doc1=doc1.substr(posChaine+chaine.length,doc1.length) // doc1 restant
      i++
      }
    doc2+=doc1 // on ajoute doc1 restant après la sortie de boucle
    finTag=doc.indexOf('>') 
    doc2+=doc.substring(posTag,finTag+1) // ajoute le tag
    doc=doc.substr(finTag+1,doc.length) //reste du texte
    n++
   }
  document.body.innerHTML=doc2+doc // complète avec le reste de texte
 



</script>
  </head>
 

un texte qui ne sert &agrave; rien d'autre qu'&agrave; illustrer la fonctionnalit&eacute; de ce script

  un texte qui ne sert &agrave; rien d'autre qu'&agrave; illustrer la fonctionnalit&eacute; de ce script

  un texte qui ne sert &agrave; rien d'autre qu'&agrave; illustrer la fonctionnalit&eacute; de ce script

  un texte qui ne sert &agrave; rien d'autre qu'&agrave; illustrer la fonctionnalit&eacute; de ce script

  un texte qui ne sert &agrave; rien d'autre qu'&agrave; illustrer la fonctionnalit&eacute; de ce script

  un texte qui ne sert &agrave; rien d'autre qu'&agrave; illustrer la fonctionnalit&eacute; de ce script

<script>
var docload = document.body.innerHTML;
//recherche('i', docload);
</script>
 
</html>

7 réponses

cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
17 sept. 2007 à 10:10
bonjour,

>>j'ai un petit problème entre IE et FF (pour changer ... lol)
    hélas...

>>une fonction sur l'événement onclick si on est sur FF
et on mouseover si on est sur IE .
    mais là... tu le cherches... non ?
    quelle idée ?
    à priori, il faut mettre les 2 évènements et dans chaque tester avec quel navigateur on est.

    ou alors regarder du coté de "l'interprétation conditionnelle" en html

<!--[if IE]>
    tout ce qu'on veut, qui ne sera exécuté qu'avec IE
<![endif]-->







<hr />




Cordialement Bul [mon Site] [M'écrire]
<hr />


En général, c'est absurde de généraliser.
3
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
17 sept. 2007 à 10:14
je pose la question quand même : pourquoi vouloir faire ça ?
<hr />



Cordialement            Bul         [mon Site]     [M'écrire]
<hr />


En général, c'est absurde de généraliser.
0
cs_caviar Messages postés 329 Date d'inscription samedi 4 janvier 2003 Statut Membre Dernière intervention 29 mars 2015 2
17 sept. 2007 à 11:15
    lol
merci pour les réponses... ben en fait si tu teste le code sur les deux navigateurs tu vas voir qu'il se comporte bien selon l'événement choisi... sur FF par exemple si je lance ma fonction sur le onmouseup elle s'exécute mais après il me surligne le texte depuis le début alors que mon bouton de souris est relaché ... donc bug
sur IE c'est l'inverse ... je ne peux plus sélectionner de texte ... donc je vais essayer en conditionnel html ... je vois que ça pour le coup
thx
@+
0
cs_caviar Messages postés 329 Date d'inscription samedi 4 janvier 2003 Statut Membre Dernière intervention 29 mars 2015 2
17 sept. 2007 à 11:18
 
 voila comme ça ça marche à peu près bien ... au passage si tu as une idée de comment gérer les saut de ligne dans la récupération de la sélection :) je suis prenneur :) :) :)
@+ et merci

  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
  <style type="text/css">
.surligne  {
   background-color: #ffa;
  }
</style>
  <meta http-equiv="content-type" content="text/html; charset=windows-1250">
  <meta name="generator" content="PSPad editor, www.pspad.com">
  <title></title>
  <SCRIPT>
  function getSelectedText(){
 
        var selectedText = '';
     
        if (document.getSelection){
                selectedText = document.getSelection();
        } else if(document.selection){
                selectedText = document.selection.createRange().text;
        };
      //  alert (selectedText);
        return selectedText;
}
  </script>
 
   <script type"text/javascript">
function recherche(chaine, doc)
  {
 // alert (chaine);
  var i=posChaine=posTag=finTag=n=0;doc1=doc2=''
  //doc1 : texte avant un tag
  //doc2 : texte final
 // var doc = document.body.innerHTML;
  el=''+chaine+''
  //console.log(chaine);
  //alert (chaine);
  if(chaine==''){ document.body.innerHTML = docload; }
  while(doc!='' && n<999)// n pour éviter la boucle infinie
    {
    posTag=doc.indexOf('<') //position d'un début de balise HTML
    doc1=doc.substr(0,posTag) // bout de texte avant un tag
    while(doc1.indexOf(chaine)!=-1 && i<99) //tant qu'on trouve une occurence de la chaine
      {
      posChaine=doc1.indexOf(chaine); // position occurence trouvée
      doc2+=doc1.substr(0,posChaine)+el // texte avant occurence +  élément ajouté
      doc1=doc1.substr(posChaine+chaine.length,doc1.length) // doc1 restant
      i++
      }
    doc2+=doc1 // on ajoute doc1 restant après la sortie de boucle
    finTag=doc.indexOf('>') 
    doc2+=doc.substring(posTag,finTag+1) // ajoute le tag
    doc=doc.substr(finTag+1,doc.length) //reste du texte
    n++
   }
  document.body.innerHTML=doc2+doc // complète avec le reste de texte
 



</script>
  </head>
 
  <!--[if IE]>
   
<![endif]-->
 

un texte qui ne sert &agrave; rien d'autre qu'&agrave; illustrer la fonctionnalit&eacute; de ce script

  un texte qui ne sert &agrave; rien d'autre qu'&agrave; illustrer la fonctionnalit&eacute; de ce script

  un texte qui ne sert &agrave; rien d'autre qu'&agrave; illustrer la fonctionnalit&eacute; de ce script

  un texte qui ne sert &agrave; rien d'autre qu'&agrave; illustrer la fonctionnalit&eacute; de ce script

  un texte qui ne sert &agrave; rien d'autre qu'&agrave; illustrer la fonctionnalit&eacute; de ce script

  un texte qui ne sert &agrave; rien d'autre qu'&agrave; illustrer la fonctionnalit&eacute; de ce script

<script>
var docload = document.body.innerHTML;
//recherche('i', docload);
</script>
 
</html>
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
17 sept. 2007 à 11:51
pas regardé de près ton script...
    qu'est-il censé faire ?

à mon humble avis, tu pars sur une mauvaise piste :
pas de raisons de faire des "choses aussi différentes" en fonction du navigateur.

il y a, certes, quelques différences de comportements
entre IE et FF  ( c'est un doux euphémisme ! )

<hr />



Cordialement            Bul         [mon Site]     [M'écrire]
<hr />


En général, c'est absurde de généraliser.
0
cs_caviar Messages postés 329 Date d'inscription samedi 4 janvier 2003 Statut Membre Dernière intervention 29 mars 2015 2
17 sept. 2007 à 14:30
    en gros quand tu surligne un mot dans du texte.. automatiquement tous les mots identiques vont se surligner en jaune dans la page ... ça sert à mettre en avant facilement certains éléments dans une liste de référence par exemple ... ;) c'est un goodies quoi :)
@++
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
17 sept. 2007 à 15:15
>>quand tu surligne un mot dans du texte..
>>automatiquement tous
les mots identiques vont se surligner en jaune dans la page
    ah... pas mal, l'idée...
    mais pas de raisons de ne pas pouvoir faire fonctionner
        de la même manière avec IE et FF.

    dans les exemples  "recherche dans la page", tu devrais trouver ton bonheur.
    ( surlignage compris )





<hr />




Cordialement        Bul         [mon Site]     [M'écrire]
<hr />


En général, c'est absurde de généraliser.
0
Rejoignez-nous