Un script qui ne fonctionne pas...

Un script qui ne fonctionne pas... - HTML/CSS - Programmation

Marsh Posté le 07-05-2005 à 00:22:30    

Hola !
 
Alors j'ai un site fait en HTML avec un peu de JavaScript pour n'importe quel browser. Justement, je voudrais que ça soit visible pour les users de Lynx (me demandez pas trop pourquoi...). Le truc c'est qu'il y a du JavaScript... donc une fonction qui permet de faire du scrolling de texte (mais ça on s'en moque...). Pour voir si je suis sur un browser supportant le JavaScript, j'ai fait une fonction qui check si le browser est connu ou non et si il est connu, je lance le script sinon j'affiche un texte.
 
Voici le code :  
 
var detect = navigator.userAgent.toLowerCase();
var browser,total,thestring;
var version = 0;
 
------------------------------------------------ Listing des browsers
if (checkIt('konqueror')) browser = "Konqueror"
else if (checkIt('msie')) browser = "Internet Explorer"
else if (checkIt('safari')) browser = "Safari"
else if (checkIt('omniweb')) browser = "OmniWeb"
else if (checkIt('opera')) browser = "Opera"
else if (checkIt('webtv')) browser = "WebTV"
else if (checkIt('icab')) browser = "iCab"
else if (checkIt('mozilla'))
{
 browser = "Mozilla"
 version = detect.charAt(place + thestring.length);
}  
else if (!checkIt('compatible'))
{
 browser = "Netscape Navigator"
 version = detect.charAt(8);
}
else browser = "Browser Inconnu";
if (!version) version = detect.charAt(place + thestring.length);
---------------------------------------------------------------------- fonction de check
function checkIt(string)
{
 place = detect.indexOf(string) + 1;
 thestring = string;
 return place;
}
 
------------------------------------------------------------------------
 
Ensuite à un endroit de ma page j'ai ça :
 
 
<div align="left">
<div id="Layer1">
 
 <script type="text/javascript">
 if not (browser = "Browser Inconnu" )
{  
 var iframesrc="page.php" // Page à charger
  document.write('<iframe id="datamain" src="'+iframesrc+'" width="450px" height="250px" marginwidth="0" marginheight="0" hspace="0" vspace="5" frameborder="0" scrolling="no"></iframe>') // Attributs du script (taille de la "box", vitesse,...)
}
else
// METTRE DU TEXTE SIMPLE  
</script>
 
----------------------------------------------------------------------
 
 
Manque de pot, quand je vire [ else if (checkIt('msie')) browser = "Internet Explorer" ], sous IE le scroll ne s'affiche pas (même quand je vire toutes les alternatives de listing en fait...). En théorie, si vous avez compris le code : détection du browser, si c'est pas inconnu alors j'affiche le scroll, sinon j'affiche rien... Mais ça marche pas vu que rien ne s'affiche dans tous les cas... et si j'enleve le "not" à l'alternative, ça s'affiche dans tous les cas.
 
Quelqu'un saurait pourquoi ? :(

Reply

Marsh Posté le 07-05-2005 à 00:22:30   

Reply

Marsh Posté le 07-05-2005 à 00:27:41    

Si quelqu'un a une autre idée pour tester la compatibilité d'un browser au JavaScript... ça serait la bienvenue !

Reply

Marsh Posté le 07-05-2005 à 00:29:39    

mais c'est quoi ce code imonde :cry:
 
au lieu d'utiliser un include php dans un div en overflow:auto...
 
ps: balise [code] :fou:


---------------
Nos estans firs di nosse pitite patreye...
Reply

Marsh Posté le 07-05-2005 à 00:31:45    

Ouaiiiiiiiiiis bon... ça répond pas au problème ça !! (mais c'est vrai que niveau conformité CSS...)

Reply

Marsh Posté le 07-05-2005 à 00:33:28    

et aussi niveau accessibilité :/


---------------
Nos estans firs di nosse pitite patreye...
Reply

Marsh Posté le 07-05-2005 à 00:35:03    

Ha j'ai pas précisé... pourquoi c'est aussi immonde ? Parce que le scroll doit tenir dans un cadre fait en ASCII et délimité par ce caractère : |
 
Voilà pourquoi je me suis un peu pris la tête :)

Reply

Marsh Posté le 07-05-2005 à 00:36:44    

mmh ? :??:
tu as une url ??


---------------
Nos estans firs di nosse pitite patreye...
Reply

Marsh Posté le 07-05-2005 à 00:38:48    

http://e2bear.free.fr/LYNX/NEWS.htm
 
C'est qu'une version temporaire... là le code source n'est même pas mis à jour... mais dans la derniere version que j'ai faite, il n'y a pas de problème d'alignement (en gros avec le code que j'ai posté)

Reply

Marsh Posté le 07-05-2005 à 00:45:08    

ca donne rien sous firefox...


Message édité par KangOl le 07-05-2005 à 00:45:26

---------------
Nos estans firs di nosse pitite patreye...
Reply

Marsh Posté le 07-05-2005 à 00:46:26    

Comment ça ?

Reply

Marsh Posté le 07-05-2005 à 00:46:26   

Reply

Marsh Posté le 07-05-2005 à 00:48:39    

on voix pas ta "bordure" ascii
 
 
et c'est vachement lourd le scrolling du text :/


---------------
Nos estans firs di nosse pitite patreye...
Reply

Marsh Posté le 07-05-2005 à 00:51:44    

C'est tout à gauche... tu vois vraiment pas le cadre où y a le scrolling... sinon je sais que c'est lourd mais c'est pas moi qui ai décidé de faire ça :(

Reply

Marsh Posté le 07-05-2005 à 00:53:26    

c'est au webmaster de mettre le holla quand le client a des idées de merde !
c'est pas parce qu'on te demande de faire ca, qu'il faut le faire obligatoirement.


---------------
Nos estans firs di nosse pitite patreye...
Reply

Marsh Posté le 07-05-2005 à 00:56:35    

En fait je pense que personne verra cette version vu qu'il y a une version flash beaucoup plus jolie :)

Reply

Marsh Posté le 07-05-2005 à 00:57:20    

et beaucoup plus lourde et pas référencable...


---------------
Nos estans firs di nosse pitite patreye...
Reply

Marsh Posté le 07-05-2005 à 01:00:38    

En fait c'est un mini-site, c'est juste pour poser un mini-jeu, j'ai pas trop d'intérêt à ce qu'il soit référençable...
 
Mais pour en revenir au javascript... personne voit comment résoudre mon problème ? Ou une autre alternative pour checker si le browser supporte le javascript ?

Reply

Marsh Posté le 09-05-2005 à 10:33:14    

Plusieurs probleme avec ton aproche.
 
En 2005 on n'utilise plus de "detection de browser" qui est une technique issue de la premiere "browser war". Elle n'as que des inconvenients (certains browsers permettent de changer l'userAgent).
En 2005 on utilise la "detection d'objet". En bref, cela consiste a "detecter" si la fonction que l'on veut utiliser est disponible ou pas.
Attention, quand je parle de "detection d'objet", je ne parle pas de detecter "document.all" ou autres trucs.
Je parle plutot d'une detection de fonction en fait.
Genre :

Code :
  1. var div;
  2. if (!!document.getElementById) {
  3.   div = document.getElementById(iddudiv);
  4. } else {
  5.   // autre methode pour obtenir le div
  6. }


 
Ensuite, tu essaye de detecter le JS avec du JS ... Or si ce  dernier n'est pas active (ou que le navigateur ne le supporte pas), ben ton code de detection fonctionne pas.
La aussi tu utilise un mauvaise technique.
De nos jours on separe le JS de l'html, ce qui permet de faire "une detection de JS sans JS".
 
En gros, on construit la page html de telle facon que cette derniere n'ai pas besoin de JS pour fonctionner.
Ensuite on introduit un script (fichier externe) pour _AJOUTER_ le comportement JS.
Donc si le JS n'est pas active, la page fonctionne quand meme. Et si le JS est active, le comportement sera ajoute une fois la page chargee (grace a window.onload).
 
Tu peux lire cet article qui explique pourquoi et comment separer le JS de l'html.

Reply

Marsh Posté le 09-05-2005 à 13:15:16    

cerel a écrit :

En 2005 on n'utilise plus de "detection de browser" qui est une technique issue de la premiere "browser war". Elle n'as que des inconvenients (certains browsers permettent de changer l'userAgent).


Pas complètement vrai, la détection de navigateurs peut être nécessaire par dessus l'object detection (pas à la place)


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Sujets relatifs:

Leave a Replay

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