Un script qui ne fonctionne pas... - HTML/CSS - Programmation
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 !
Marsh Posté le 07-05-2005 à 00:29:39
mais c'est quoi ce code imonde
au lieu d'utiliser un include php dans un div en overflow:auto...
ps: balise [code]
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...)
Marsh Posté le 07-05-2005 à 00:33:28
et aussi niveau accessibilité
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
Marsh Posté le 07-05-2005 à 00:36:44
mmh ?
tu as une url ??
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é)
Marsh Posté le 07-05-2005 à 00:45:08
ca donne rien sous firefox...
Marsh Posté le 07-05-2005 à 00:48:39
on voix pas ta "bordure" ascii
et c'est vachement lourd le scrolling du text
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
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.
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
Marsh Posté le 07-05-2005 à 00:57:20
et beaucoup plus lourde et pas référencable...
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 ?
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 :
|
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.
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)
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 ?