[JS] FireFox plante sur mon getElementById('xxx').innerT ext.split('.')

FireFox plante sur mon getElementById('xxx').innerT ext.split('.') [JS] - HTML/CSS - Programmation

Marsh Posté le 20-01-2005 à 14:48:33    

Alors voilà, j'ai un script :
 

Code :
  1. // Menu dynamique
  2. // Ce script a pour but d'aller chercher dans le "petit poucet" les informations sur la navigation actuelle,  
  3. // afin de mettre en surbrillance les menus courants.
  4. // Debug functions. Disabled as the script is in production version now ;)
  5. /*
  6. function initDebug()
  7. {
  8. document.body.innerHTML = "<textarea id=\"dbg\"></textarea>" + document.body.innerHTML;
  9. }
  10. function debug(msg)
  11. {
  12. document.getElementById("dbg" ).innerHTML += msg;
  13. }
  14. */
  15. // Search functions
  16. function getNavHistory()
  17. {
  18. var navHistory = new Array();
  19. navHistory = document.getElementById("navigation" ).innerText.split(">" );
  20. return navHistory;
  21. }
  22. // String functions
  23. function trim(str)
  24. {
  25. var stillBlank = new Boolean();
  26. stillBlank = true;
  27. while (stillBlank)
  28. {
  29.  if (str.charAt(0) == " " )
  30.   str = str.substring(1);
  31.  else
  32.   stillBlank = false;
  33. }
  34. stillBlank = true;
  35. while (stillBlank)
  36. {
  37.  if (str.charAt(str.length - 1) == " " )
  38.   str = str.substring(0, str.length - 1);
  39.  else
  40.   stillBlank = false;
  41. }
  42. return str;
  43. }
  44. // Indentify menu to hightlight and do it ;)
  45. function makeHightLight(el, pattern)
  46. {
  47. var i = new Number();
  48. for (i = 0; i < el.children.length; i++)
  49. {
  50.  if (el.children[i].innerText.indexOf(pattern) >= 0)
  51.  {
  52.   if (el.children[i].children.length == 0)
  53.   {
  54.    el.children[i].style.fontWeight = "bolder";
  55.    el.children[i].innerHTML = "&gt; " + el.children[i].innerHTML + " &lt;";
  56.    return true;
  57.   }
  58.   else
  59.   {
  60.    return makeHightLight(el.children[i], pattern);
  61.   }
  62.  }
  63. }
  64. return false;
  65. }
  66. // Main function
  67. function hightLight()
  68. {
  69. var navHistory = new Array();
  70. var i = new Number();
  71. navHistory = getNavHistory();
  72. for (i = 0; i < navHistory.length - 1; i++)
  73. {
  74.  if (document.getElementById("listFolder" ))
  75.  {
  76.   if (makeHightLight(document.getElementById("listFolder" ), trim(navHistory[i]).substring(0, Math.min(trim(navHistory[i]).length, 10))))
  77.   {
  78.    if (document.getElementById("listFolder2" ))
  79.    {
  80.     makeHightLight(document.getElementById("listFolder2" ), trim(navHistory[i + 1]).substring(0, Math.min(trim(navHistory[i + 1]).length, 10)));
  81.    }
  82.    break;
  83.   }
  84.  }
  85. }
  86. }


(il est bô hein ? sisi :o)
 
Et sous IE ça marche parfaitement.
Mais sous FF, il ne comprends pas :

Code :
  1. document.getElementById("navigation" ).innerText.split(">" );


 
Pour lui, "document.getElementById("navigation" ).innerText" n'a pas de méthode ou de propriété.
 
Vous pouvez me dire par quoi je dois remplacer cette ligne ?
 
PS: si possible, un truc génial, ce serait un truc compatible à la fois FF et IE, mais bon, c'est peut-être trop demandé ;)

Reply

Marsh Posté le 20-01-2005 à 14:48:33   

Reply

Marsh Posté le 20-01-2005 à 15:02:00    

C'est quoi comme objet "navigation" ?

Reply

Marsh Posté le 20-01-2005 à 15:09:59    

Voit la référence DHTML de microsoft sur innerText, et surtout cette phrase :

Citation :

There is no public standard that applies to this property.


 
Donc ça n'existe qu'en JScript, et pas en javascript...

Reply

Marsh Posté le 20-01-2005 à 15:12:12    

bidem a écrit :

C'est quoi comme objet "navigation" ?


C'est un DIV.
 
=> Le JS met les entrées du menus en gras et entre "> ... <"


Message édité par Arjuna le 06-04-2005 à 12:24:17
Reply

Marsh Posté le 20-01-2005 à 15:13:10    

FlorentG a écrit :

Voit la référence DHTML de microsoft sur innerText, et surtout cette phrase :

Citation :

There is no public standard that applies to this property.


 
Donc ça n'existe qu'en JScript, et pas en javascript...


C'est pour ça que je demande par quoi remplacer pour FF.
 
J'ai trouvé cette page :
http://www.mozilla.org/editor/ie2midas.html
 
Mais ils ne parlent que de "innetHTML", hors moi j'ai besoin aussi du innerText


Message édité par Arjuna le 20-01-2005 à 15:13:43
Reply

Marsh Posté le 20-01-2005 à 15:18:15    

En fait, pour résumer.
 
En haut de la page, il y a un "petit poucet" (suite de liens qui représentent la navigation courante).
 
Il contient : "Interventions > Discours et déclarations > 2005 > Janvier 2005 > Article : Janvier 2005" (entre chaque ">", il s'agit d'un lien. Mais pour plus de commodité, je ne vais pas chercher à l'intérieur des liens, mais j'analyse directement le "innerText" (car ce ne sont pas nécessairement toujours des liens).
 
Ensuite, une fois que j'ai trouvé la chaîne, je recherche chaque sous-chaîne (les éléments entre les ">" ) dans mes deux div de navitation. Et lorsque j'en ai trouvé un qui correspond, je le modifie pour le mettre en gras et avec des "> ... <" de chaque côté.
 
On ne peut pas faire autrement, notre outils de CMS qui gère le site ne sais pas identifier la page en court de visualisation, et il génère des fichier HTML pleins, donc pas de variable utilisable.

Reply

Marsh Posté le 20-01-2005 à 15:21:45    

Y'aurait moyen de faire autrement :
 
Tu fait toutes tes pages en XHTML. Tu vérifies bien qu'elle sont servies en application/xhtml+xml. Ensuite tu les parses en tant qu'XML en PHP, et tu rajoute genre une class="current" dans le bon lien :)

Reply

Marsh Posté le 20-01-2005 à 15:29:40    

FlorentG a écrit :

Y'aurait moyen de faire autrement :
 
Tu fait toutes tes pages en XHTML. Tu vérifies bien qu'elle sont servies en application/xhtml+xml. Ensuite tu les parses en tant qu'XML en PHP, et tu rajoute genre une class="current" dans le bon lien :)


1) Elles sont full XHTML compliant.
2) Y'a PAS de PHP sur le serveur. Pour la simple et bonne raison que c'est le site de l'Elysée, et que Chirac n'a pas envie de se retrouver dans les bras de Casimir en train et publier sa lettre au père noël parcequ'un hacker à trouvé ça marrant.
 
L'appli CMS qui gère le site est derrière un firewall et coupée de tout réseau génère des fichiers HTML statiques, qui sont ensuite acheminés, via une lige totalement indépendant d'internet, sur le serveur web. Ce dernier ne sait que servir des pages HTML statiques et rien d'autre (même pas d'upload ou de CGI)


Message édité par Arjuna le 20-01-2005 à 15:30:06
Reply

Marsh Posté le 20-01-2005 à 15:31:55    

Arjuna a écrit :

1) Elles sont full XHTML compliant.
2) Y'a PAS de PHP sur le serveur. Pour la simple et bonne raison que c'est le site de l'Elysée, et que Chirac n'a pas envie de se retrouver dans les bras de Casimir en train et publier sa lettre au père noël parcequ'un hacker à trouvé ça marrant.
 
L'appli CMS qui gère le site est derrière un firewall et coupée de tout réseau génère des fichiers HTML statiques, qui sont ensuite acheminés, via une lige totalement indépendant d'internet, sur le serveur web. Ce dernier ne sait que servir des pages HTML statiques et rien d'autre (même pas d'upload ou de CGI)


 
Hum, elles devraient être XHTML 1.0, et au moins satisfaire la pirorité A des WCAG, vu que dans la nouvelle loi qui vient de sortir, tous les sites administratifs doivent être aux normes d'accessibilité ;)

Reply

Marsh Posté le 20-01-2005 à 16:39:45    

Bon, j'y suis presque :sweat:
 
J'arrive à me balader dedans, mais je n'arrive pas à modifier :sweat:
 

Code :
  1. // Indentify menu to hightlight and do it ;)
  2. function makeHightLight(el, pattern)
  3. {
  4. var i = new Number();
  5. if (document.all)
  6. {
  7.  for (i = 0; i < el.children.length; i++)
  8.  {
  9.   if (el.children[i].innerText.indexOf(pattern) >= 0)
  10.   {
  11.    if (el.children[i].children.length == 0)
  12.    {
  13.     el.children[i].style.fontWeight = "bolder";
  14.     el.children[i].innerHTML = "&gt; " + el.children[i].innerHTML + " &lt;";
  15.     return true;
  16.    }
  17.    else
  18.    {
  19.     return makeHightLight(el.children[i], pattern);
  20.    }
  21.   }
  22.  }
  23.  return false;
  24. }
  25. else
  26. {
  27.  for (i = 0; i < el.childNodes.length; i++)
  28.  {
  29.   if (el.childNodes[i].tagName)
  30.   {
  31.    if (el.childNodes[i].tagName == "A" )
  32.    {
  33.     alert(el.childNodes[i].text + " -- " + pattern);
  34.     if (el.childNodes[i].text.indexOf(pattern) >= 0)
  35.     {
  36. // Là, ça marche presque !
  37.      el.childNodes[i].text = "<b>&gt; " + el.childNodes[i].text + " &lt;</b>";
  38.      return true;
  39.     }
  40.    }
  41.    else
  42.    {
  43.     if (el.childNodes[i].hasChildNodes())
  44.     {
  45.      if (makeHightLight(el.childNodes[i], pattern))
  46.      {
  47.       return true;
  48.      }
  49.     }
  50.    }
  51.   }
  52.  }
  53.  return false;
  54. }
  55. }


 
=> le .text est en readonly. Comment je fais pour le modifier :o

Reply

Marsh Posté le 20-01-2005 à 16:39:45   

Reply

Marsh Posté le 20-01-2005 à 16:40:35    

FlorentG a écrit :

Hum, elles devraient être XHTML 1.0, et au moins satisfaire la pirorité A des WCAG, vu que dans la nouvelle loi qui vient de sortir, tous les sites administratifs doivent être aux normes d'accessibilité ;)


Mais puisque je te dit qu'il l'est :o (quoique non, c'est HTML4) mais avec une structure XHTML (pas de tableau). Sauf que vu qu'on passe par un CMS con qui vire les " des attributs et passe les tag en majuscule, sans parler des balises style "<img />" sont systématiquement remplacées par "<img>", on peut pas être compatible XHTML. Mais pour les problèmes d'accessibilité, pas de problème. La preuve, le truc de lecture en ligne des discours marche très bien.


Message édité par Arjuna le 20-01-2005 à 16:46:58
Reply

Marsh Posté le 20-01-2005 à 16:42:26    

Arjuna a écrit :

Mais puisque je te dit qu'il l'est :o


 
Oups, j'ai mal lu :D
 
Sinon y'a plus simple ! Tu fait :

Code :
  1. el.childNodes[i].style.fontWeight = 'bold';


Message édité par FlorentG le 20-01-2005 à 16:43:10
Reply

Marsh Posté le 20-01-2005 à 16:47:29    

FlorentG a écrit :

Oups, j'ai mal lu :D
 
Sinon y'a plus simple ! Tu fait :

Code :
  1. el.childNodes[i].style.fontWeight = 'bold';



 
Et pour rajouter mes ">" et "<" de chaque côté ?

Reply

Marsh Posté le 20-01-2005 à 16:48:43    

Essaye de voir sur ce site : http://www.quirksmode.org/ Il utilise le systeme que tu as decrit. Il me semble qu'il en explique le fonctionnement.

Reply

Marsh Posté le 20-01-2005 à 16:48:49    

A mince, y'a les becs d'oiseau à rajouter :cry:... Ben avec les pseudo machin :before et :after sur le même principe, mais fonctionne pas sous IE...
 
Sinon en fait, en XHTML (avec le bon type MIME), y'a plus de innerHTML, faut passer par des objects DOM...

Reply

Marsh Posté le 20-01-2005 à 17:33:10    

Wouala ça marche !
 

Code :
  1. // Menu dynamique
  2. // Ce script a pour but d'aller chercher dans le "petit poucet" les informations sur la navigation actuelle,  
  3. // afin de mettre en surbrillance les menus courants.
  4. // UPDATE 20/01/2005 : SD / Update for Mozilla support (innerHTML and innerText not supported)
  5. // Debug functions. Disabled as the script is in production version now ;)
  6. /*
  7. function initDebug()
  8. {
  9. document.body.innerHTML = "<textarea id=\"dbg\"></textarea>" + document.body.innerHTML;
  10. }
  11. function debug(msg)
  12. {
  13. document.getElementById("dbg" ).innerHTML += msg;
  14. }
  15. */
  16. // Search functions
  17. function getNavHistory()
  18. {
  19. var navHistory = new Array();
  20. if (document.all)
  21. {
  22.  navHistory = document.getElementById("navigation" ).innerText.split(">" );
  23. }
  24. else
  25. {
  26.  var i = new Number();
  27.  var j = new Number();
  28.  j = 0;
  29.  for (i = 0; i < document.getElementById("navigation" ).childNodes.length; i++)
  30.  {
  31.   if (document.getElementById("navigation" ).childNodes[i].tagName == "A" )
  32.   {
  33.    navHistory[j] = document.getElementById("navigation" ).childNodes[i].text;
  34.    j++;
  35.   }
  36.  }
  37. }
  38. return navHistory;
  39. }
  40. // String functions
  41. function trim(str)
  42. {
  43. while (str.indexOf("\n" ) >= 0)
  44. {
  45.  str = str.replace("\n", "" );
  46. }
  47. while (str.indexOf("\r" ) >= 0)
  48. {
  49.  str = str.replace("\r", "" );
  50. }
  51. while (str.indexOf("\t" ) >= 0)
  52. {
  53.  str = str.replace("\t", "" );
  54. }
  55. while (str.indexOf(" " ) >= 0)
  56. {
  57.  str = str.replace(" ", "" );
  58. }
  59. return str;
  60. }
  61. // Indentify menu to hightlight and do it ;)
  62. function makeHightLight(el, pattern)
  63. {
  64. var i = new Number();
  65. if (document.all)
  66. {
  67.  for (i = 0; i < el.children.length; i++)
  68.  {
  69.   if (trim(el.children[i].innerText).indexOf(pattern) >= 0)
  70.   {
  71.    if (el.children[i].children.length == 0)
  72.    {
  73.     el.children[i].style.fontWeight = "bolder";
  74.     el.children[i].innerHTML = "&gt; " + el.children[i].innerHTML + " &lt;";
  75.     return true;
  76.    }
  77.    else
  78.    {
  79.     return makeHightLight(el.children[i], pattern);
  80.    }
  81.   }
  82.  }
  83.  return false;
  84. }
  85. else
  86. {
  87.  for (i = 0; i < el.childNodes.length; i++)
  88.  {
  89.   if (el.childNodes[i].tagName)
  90.   {
  91.    if (el.childNodes[i].tagName == "A" )
  92.    {
  93.     if (trim(el.childNodes[i].text).indexOf(pattern) >= 0)
  94.     {
  95.      x = el.childNodes[i];
  96.      y = el.childNodes[i].text;
  97.      x.innerHTML = '';
  98.      x.innerHTML = "<b>&gt; " + y + " &lt;</b>";
  99.      return true;
  100.     }
  101.    }
  102.    else
  103.    {
  104.     if (el.childNodes[i].hasChildNodes())
  105.     {
  106.      if (makeHightLight(el.childNodes[i], pattern))
  107.      {
  108.       return true;
  109.      }
  110.     }
  111.    }
  112.   }
  113.  }
  114.  return false;
  115. }
  116. }
  117. // Main function
  118. function hightLight()
  119. {
  120. var navHistory = new Array();
  121. var i = new Number();
  122. navHistory = getNavHistory();
  123. for (i = 0; i < navHistory.length - 1; i++)
  124. {
  125.  if (document.getElementById("listFolder" ))
  126.  {
  127.   if (makeHightLight(document.getElementById("listFolder" ), trim(navHistory[i]).substring(0, Math.min(trim(navHistory[i]).length, 10))))
  128.   {
  129.    if (document.getElementById("listFolder2" ))
  130.    {
  131.     makeHightLight(document.getElementById("listFolder2" ), trim(navHistory[i + 1]).substring(0, Math.min(trim(navHistory[i + 1]).length, 10)));
  132.    }
  133.    break;
  134.   }
  135.  }
  136. }
  137. }

Reply

Marsh Posté le 20-01-2005 à 19:44:03    

Arjuna a écrit :

Wouala ça marche !
 

Code :
  1. // Menu dynamique
  2. // Ce script a pour but d'aller chercher dans le "petit poucet" les informations sur la navigation actuelle,  
  3. // afin de mettre en surbrillance les menus courants.
  4. // UPDATE 20/01/2005 : SD / Update for Mozilla support (innerHTML and innerText not supported)
  5. // Debug functions. Disabled as the script is in production version now ;)
  6. /*
  7. function initDebug()
  8. {
  9. document.body.innerHTML = "<textarea id=\"dbg\"></textarea>" + document.body.innerHTML;
  10. }
  11. function debug(msg)
  12. {
  13. document.getElementById("dbg" ).innerHTML += msg;
  14. }
  15. */
  16. // Search functions
  17. function getNavHistory()
  18. {
  19. var navHistory = new Array();
  20. if (document.all)
  21. {
  22.  navHistory = document.getElementById("navigation" ).innerText.split(">" );
  23. }
  24. else
  25. {
  26.  var i = new Number();
  27.  var j = new Number();
  28.  j = 0;
  29.  for (i = 0; i < document.getElementById("navigation" ).childNodes.length; i++)
  30.  {
  31.   if (document.getElementById("navigation" ).childNodes[i].tagName == "A" )
  32.   {
  33.    navHistory[j] = document.getElementById("navigation" ).childNodes[i].text;
  34.    j++;
  35.   }
  36.  }
  37. }
  38. return navHistory;
  39. }
  40. // String functions
  41. function trim(str)
  42. {
  43. while (str.indexOf("\n" ) >= 0)
  44. {
  45.  str = str.replace("\n", "" );
  46. }
  47. while (str.indexOf("\r" ) >= 0)
  48. {
  49.  str = str.replace("\r", "" );
  50. }
  51. while (str.indexOf("\t" ) >= 0)
  52. {
  53.  str = str.replace("\t", "" );
  54. }
  55. while (str.indexOf(" " ) >= 0)
  56. {
  57.  str = str.replace(" ", "" );
  58. }
  59. return str;
  60. }
  61. // Indentify menu to hightlight and do it ;)
  62. function makeHightLight(el, pattern)
  63. {
  64. var i = new Number();
  65. if (document.all)
  66. {
  67.  for (i = 0; i < el.children.length; i++)
  68.  {
  69.   if (trim(el.children[i].innerText).indexOf(pattern) >= 0)
  70.   {
  71.    if (el.children[i].children.length == 0)
  72.    {
  73.     el.children[i].style.fontWeight = "bolder";
  74.     el.children[i].innerHTML = "&gt; " + el.children[i].innerHTML + " &lt;";
  75.     return true;
  76.    }
  77.    else
  78.    {
  79.     return makeHightLight(el.children[i], pattern);
  80.    }
  81.   }
  82.  }
  83.  return false;
  84. }
  85. else
  86. {
  87.  for (i = 0; i < el.childNodes.length; i++)
  88.  {
  89.   if (el.childNodes[i].tagName)
  90.   {
  91.    if (el.childNodes[i].tagName == "A" )
  92.    {
  93.     if (trim(el.childNodes[i].text).indexOf(pattern) >= 0)
  94.     {
  95.      x = el.childNodes[i];
  96.      y = el.childNodes[i].text;
  97.      x.innerHTML = '';
  98.      x.innerHTML = "<b>&gt; " + y + " &lt;</b>";
  99.      return true;
  100.     }
  101.    }
  102.    else
  103.    {
  104.     if (el.childNodes[i].hasChildNodes())
  105.     {
  106.      if (makeHightLight(el.childNodes[i], pattern))
  107.      {
  108.       return true;
  109.      }
  110.     }
  111.    }
  112.   }
  113.  }
  114.  return false;
  115. }
  116. }
  117. // Main function
  118. function hightLight()
  119. {
  120. var navHistory = new Array();
  121. var i = new Number();
  122. navHistory = getNavHistory();
  123. for (i = 0; i < navHistory.length - 1; i++)
  124. {
  125.  if (document.getElementById("listFolder" ))
  126.  {
  127.   if (makeHightLight(document.getElementById("listFolder" ), trim(navHistory[i]).substring(0, Math.min(trim(navHistory[i]).length, 10))))
  128.   {
  129.    if (document.getElementById("listFolder2" ))
  130.    {
  131.     makeHightLight(document.getElementById("listFolder2" ), trim(navHistory[i + 1]).substring(0, Math.min(trim(navHistory[i + 1]).length, 10)));
  132.    }
  133.    break;
  134.   }
  135.  }
  136. }
  137. }



 
 
Je te félicite, ton code JS est sacrément plus joli qu'il y a quelques temps. :)  :jap:  
 
Au fait j'ai repris ton idée de menu déroulant qui cherche en JS les mots commençant par les lettres inscrites dans l'input.  :D  
 
 :hello:

Reply

Marsh Posté le 20-01-2005 à 20:45:21    

:)

Reply

Marsh Posté le 17-03-2005 à 16:49:06    

Ca y est, on parle du site un peu partout :) Bravo pour la mise aux normes ;)

Reply

Marsh Posté le 17-03-2005 à 18:08:40    

Arf, oui, c'est vrai, le site est mis en ligne depuis un ou deux jour :)

Reply

Marsh Posté le 17-03-2005 à 18:14:34    

Ouahou ! C'est cool, ils ont laissé mon script tel quel, avec les commentaires et la fonction de debug...
 
Et surtout mes initiales dedans :bounce:
 
Ils parlent de moi sur le site de la république française !!! :D


Message édité par Arjuna le 17-03-2005 à 18:15:09
Reply

Marsh Posté le 17-03-2005 à 19:58:39    

L'enflure, aucun crédit à nous tous qui t'avons aidé dans ta dure quête de maîtrise du dragon JS :D

Reply

Marsh Posté le 17-03-2005 à 20:03:55    

Bah ouais, c'est comme ça qu'on devient célèbre : faut s'attribuer le mérite des autres :D

Reply

Marsh Posté le 17-03-2005 à 20:04:57    

gnarf :D Enfin au moins on peut être fier du site de notre président, et le citer en exemple :)

Reply

Marsh Posté le 17-03-2005 à 20:10:56    

C'est pas de ma faute ça par contre, parceque moi et les normes, ça fait deux :D
J'aime bien m'en servir, du moment qu'elles ne me brident pas (ni au niveau de l'implémentation de choses spécifiques, ni en terme de vitesse de développement), ce qui est malheureusement souvent le cas avec les normes actuelles (entre le fait que je ne les maîtrise pas vraiment, et qu'il y a un certain nombre de régressions par rapport aux versions "proprio" qu'avaient développé Microsoft et Netscape à l'époque de leur guéguère...)
 
M'enfin l'Elysée, c'est différent, une lois sur l'accessibilité des documents administratif les force à ne faire que du 100% full W3C compliant, afin de les outils de lecture interactive, de brail et autres soient compatibles.

Reply

Marsh Posté le 17-03-2005 à 20:14:35    

Reply

Marsh Posté le 22-03-2005 à 16:16:53    

Au fait, vous avez vu ? Je suis vraiment une pure star :sol:
 
En plus d'être mentionné (bon, de façon détournée, je sais :D) sur le site de l'Elysée, je suis aussi dans le journal !!!
 
20 Minutes de ce matin (mardi 22 mars 2005) édition de Paris.
L'article "Les pirates on bon dos", de "MagicBuzz", dans le courrier des lecteurs :sol:

Reply

Marsh Posté le 22-03-2005 à 16:19:07    

Par contre, c'est vrai que c'est pas terrible qu'une personnalité de ma notoriété reconnue d'utilité publique avoue publiquement dans un journal de seconde zone qu'elle a des films piratés chez elle :whistle:


Message édité par Arjuna le 22-03-2005 à 16:19:35
Reply

Marsh Posté le 22-03-2005 à 16:21:35    

Arjuna a écrit :


20 Minutes de ce matin (mardi 22 mars 2005) édition de Paris.


 
oui. Tu as des MP3 piraté parce que aller au cinéma, c'est trop cher :o
 
On a beaucoup ris au bureau grace à toi :o


---------------
Moi, j'aime pas les signatures - J'écoute actuellement :
Reply

Marsh Posté le 22-03-2005 à 16:31:47    


 
hmmm par contre la légende des icônes genre http://www.elysee.fr/elysee/root/bank/tclass/readspeaker.png n'est qu'en Alt et non en Title, du coup avec Mozilla j'ai pas d'infobulle qui me dit ce que c'est, est-ce bien accessible ? :o [:ddr555]


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 22-03-2005 à 16:38:02    

Les naveugles et les sourds y savent pas installer Mozilla parceque c'est trop compliqué, alors ils utilisent IE :ange:

Reply

Marsh Posté le 22-03-2005 à 16:40:03    

coffeeman a écrit :

oui. Tu as des MP3 piraté parce que aller au cinéma, c'est trop cher :o
 
On a beaucoup ris au bureau grace à toi :o


Et d'abors, j'ai pas parlé de MP3 :heink:
 
(d'autant plus que même si j'en ai un paquet, pour la plupart, ce sont des copies de mes CD - que j'ai souvent eu la flème de ripper moi-même, donc que j'ai télécharger, mais bon)

Reply

Marsh Posté le 22-03-2005 à 16:40:05    

antp a écrit :

hmmm par contre la légende des icônes genre http://www.elysee.fr/elysee/root/b [...] peaker.png n'est qu'en Alt et non en Title, du coup avec Mozilla j'ai pas d'infobulle qui me dit ce que c'est, est-ce bien accessible ? :o [:ddr555]


En tous cas ils ont bien remplis le alt :

Citation :

Lire ce texte (synthèse vocale)


Moi ça me plaît bien :)

Reply

Marsh Posté le 22-03-2005 à 17:16:50    

Arjuna a écrit :

Et d'abors, j'ai pas parlé de MP3 :heink:
 
(d'autant plus que même si j'en ai un paquet, pour la plupart, ce sont des copies de mes CD - que j'ai souvent eu la flème de ripper moi-même, donc que j'ai télécharger, mais bon)


 
http://dener.free.fr/img/2005-03-22_20minutes_MB-.jpg
 
Oué y a pas trace de MP3  :D


Message édité par Flyman30 le 06-04-2005 à 14:37:22

---------------
planuldep | Association pêche à la Sempé
Reply

Marsh Posté le 22-03-2005 à 19:14:20    

J'ai tout regardé partout sur mon chemin du retour ce soir si y'avais pas des flics en planque partout autour de chez moi :D
En plus, chais pas ce qu'ils avaient ce soir, mais ct plein de policiers dans le métro ce soir. Je vous raconte pas la crise de parano :lol:

Reply

Marsh Posté le 25-03-2005 à 19:37:57    

Allez, une correction sur le site de l'Elysée.
 
En fait, dans le "petit poucet", quand le texte est trop long, on a des "..." qui viennent se mettre au milieu de la chaîne, pour la raccourcir. Par exemple :
"Lire la Déclaration Universelle des Droits de l'Homme"
Devient :
"Lire la Décl...ts de L'Homme"
 
C'est pas très beau, mais c'est l'outils qui gère les templates qui fait ça, et on n'a pas les sources pour le changer.
 
Du coup, j'avais limité mes fonctions à la lecture des X premiers caractères des éléments du petit poucet, avec X < le plus petit nombre de caractères possibles avant les "...".
 
Seul problème, ce chiffre étant relativement bas, le script ne différenciait plus "Juin" et "Juillet", et du coup ça ne surlignait pas le bon mois...
 
Correction donc, si je trouve "...", alors je tronque à cet endroit, sinon, je laisse la chaîne telle quelle pour la comparaison.
 
Seule limitation, c'est que j'ignore la fin de la phrase. DU coup, des menus :
"Lire la bibliogra...ident Chirac"
et
"Lire la bibliogra...tre Raffarin"
 
Sera reconnue comme la même.
A eux de faire attention à mettre la partie du titre la plus discriminante en premier :)
 

Code :
  1. // Menu dynamique
  2. // Ce script a pour but d'aller chercher dans le "petit poucet" les informations sur la navigation actuelle,  
  3. // afin de mettre en surbrillance les menus courants.
  4. // UPDATE 20/01/2005 : SD / Update for Mozilla support (innerHTML and innerText not supported)
  5. // UPDATE 25/03/2005 : SD / Update for differenciation between "Juin" and "Juillet" months
  6. // Debug functions. Disabled as the script is in production version now ;)
  7. /*
  8. function initDebug()
  9. {
  10. document.body.innerHTML = "<textarea id="dbg"></textarea>" + document.body.innerHTML;
  11. }
  12. function debug(msg)
  13. {
  14. document.getElementById("dbg" ).innerHTML += msg;
  15. }
  16. */
  17. // Search functions
  18. function getNavHistory()
  19. {
  20. var navHistory = new Array();
  21. if (document.all)
  22. {
  23.  navHistory = document.getElementById("navigation" ).innerText.split(">" );
  24. }
  25. else
  26. {
  27.  var i = new Number();
  28.  var j = new Number();
  29.  j = 0;
  30.  for (i = 0; i < document.getElementById("navigation" ).childNodes.length; i++)
  31.  {
  32.   if (document.getElementById("navigation" ).childNodes[i].tagName == "A" )
  33.   {
  34.    navHistory[j] = document.getElementById("navigation" ).childNodes[i].text;
  35.    j++;
  36.   }
  37.  }
  38. }
  39. return navHistory;
  40. }
  41. // String functions
  42. function trim(str)
  43. {
  44. if (str.indexOf("..." ) >= 0)
  45. {
  46.  str = str.substring(0, str.indexOf("..." ) - 1);
  47. }
  48. while (str.indexOf("\n" ) >= 0)
  49. {
  50.  str = str.replace("\n", "" );
  51. }
  52. while (str.indexOf("\r" ) >= 0)
  53. {
  54.  str = str.replace("\r", "" );
  55. }
  56. while (str.indexOf("\t" ) >= 0)
  57. {
  58.  str = str.replace("\t", "" );
  59. }
  60. while (str.indexOf(" " ) >= 0)
  61. {
  62.  str = str.replace(" ", "" );
  63. }
  64. return str;
  65. }
  66. // Indentify menu to hightlight and do it ;)
  67. function makeHightLight(el, pattern)
  68. {
  69. var i = new Number();
  70. if (document.all)
  71. {
  72.  for (i = 0; i < el.children.length; i++)
  73.  {
  74.   if (trim(el.children[i].innerText).indexOf(pattern) >= 0)
  75.   {
  76.    if (el.children[i].children.length == 0)
  77.    {
  78.     el.children[i].style.fontWeight = "bolder";
  79.     el.children[i].innerHTML = "&gt; " + el.children[i].innerHTML + " &lt;";
  80.     return true;
  81.    }
  82.    else
  83.    {
  84.     return makeHightLight(el.children[i], pattern);
  85.    }
  86.   }
  87.  }
  88.  return false;
  89. }
  90. else
  91. {
  92.  for (i = 0; i < el.childNodes.length; i++)
  93.  {
  94.   if (el.childNodes[i].tagName)
  95.   {
  96.    if (el.childNodes[i].tagName == "A" )
  97.    {
  98.     if (trim(el.childNodes[i].text).indexOf(pattern) >= 0)
  99.     {
  100.      x = el.childNodes[i];
  101.      y = el.childNodes[i].text;
  102.      x.innerHTML = '';
  103.      x.innerHTML = "<b>&gt; " + y + " &lt;</b>";
  104.      return true;
  105.     }
  106.    }
  107.    else
  108.    {
  109.     if (el.childNodes[i].hasChildNodes())
  110.     {
  111.      if (makeHightLight(el.childNodes[i], pattern))
  112.      {
  113.       return true;
  114.      }
  115.     }
  116.    }
  117.   }
  118.  }
  119.  return false;
  120. }
  121. }
  122. // Main function
  123. function hightLight()
  124. {
  125. var navHistory = new Array();
  126. var i = new Number();
  127. navHistory = getNavHistory();
  128. for (i = 0; i < navHistory.length - 1; i++)
  129. {
  130.  if (document.getElementById("listFolder" ))
  131.  {
  132.   if (makeHightLight(document.getElementById("listFolder" ), trim(navHistory[i])))
  133.   {
  134.    if (document.getElementById("listFolder2" ))
  135.    {
  136.     makeHightLight(document.getElementById("listFolder2" ), trim(navHistory[i + 1]));
  137.    }
  138.    break;
  139.   }
  140.  }
  141. }
  142. }


 
Voilà, ça devrait mieu marcher maintenant. Vous avez jusqu'à lundi pour voir le bug :D

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed