11540 sujets

JavaScript, DOM et API Web HTML5

Salut !

Je post aujourd'hui parce que je rencontre, étonnamment, un petit problème sous IE avec un site qui tourne très bien sous Firefox / Chrome.

Le site est fait en html5, j'ai donc joint html5shiv, mais rien y fait, il ne reconnait pas les balises. A se demander même si le script est bien chargé.
Tous les éléments html5 sont en display:block, le site est valide w3c etc.

Je sais plus trop où chercher, donc je m'en remet à votre science intarissable et à votre perspicacité hors du commun afin de m'aiguiller dans cette recherche de bug. Smiley lol

Voilà les sources :

header.php:

<!DOCTYPE html>
<!--[if lte IE 7]> <html class="ie7 oldie" lang="fr"> <![endif]-->
<!--[if IE 8]> <html class="ie8 oldie" lang="fr"> <![endif]-->
<!--[if gt IE 8]><!--> <html lang="fr"> <!--<![endif]-->
<head>
<!--[if lt IE 9]> <script src="js/html5shiv.js"></script> <![endif]-->
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title><?php echo $title.' '; ?></title>
<meta name="robots" content="<?php echo $robots ;?>" />
<link rel="stylesheet" href="css/reset.css"/>
<link rel="stylesheet" href="css/jqueriui/jquery-ui-1.9.1.custom.min.css"/>
<link rel="stylesheet" href="css/style.css"/>
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
<link rel="icon" type="image/png" href="favicon.png" />
</head>

<body>
<div id='page'>
<header>
  <nav>
  	<a href="index.php"><div id="logoMenu"></div></a>
    <div id="navSelector"></div>
    <ul>
      <li id="menu1"><a href="index.php">Accueil</a></li><li id="menu2" class="dropdown">
          <span class='drop'>Services</span>
          <ul class="sub-menu">
            <li><a href="site.php">Présentation</a></li><li><a href="serv1.php">Servie1</a></li><li><a href="serv2.php">Service2</a></li>
          </ul>
      </li><li id="menu3"><a href="tarifs.php">Tarifs</a></li><li id="menu4"><a href="devis.php">Devis</a></li>
    </ul>
  </nav>
</header>



index.php :

<?php $title="Accueil"; // Titre de la page 
$robots = 'index';
include('header.php'); // Doctype, <head>, menu et ouverture de html, body, #page?>

<section>
/* CONTENU DE LA PAGE */
</section>
<?php include('footer.php'); // Footer, fermeture de #page, body et html?>
<script type='text/javascript' src="js/logoNav.js"></script>
</body>
</html>



footer.php :

<div class="wrapper">
    <div class="col">
      <h3>Services</h3>
      <ul>
        <li><a href="1.php">Serv1</a></li>
        <li><a href="2.php">Serv2</a></li>
        <li><a href="3.php">Serv3</a></li>
      </ul>
    </div>

    <div class="col">
      <h3>Informations</h3>
      <ul>
        <li><a href="index.php#homepage">Présentation</a></li>
        <li><a href="tarifs.php">Tarifs</a></li>
        <li><a href="devis.php">Demander un devis</a></li>
      </ul>
    </div>

    <div class="col2">
      <h3>Intitulé</h3>
      <a href="link"><div ><div class="overlay"><p>></p></div></div></a>
    </div>

    <div class="clear"></div>

    <div id="phone"><p>Num</p></div>

  </div>
  <aside><img src="images/logo_menu.png" alt="logo"/><span> - Copyright 2012 ©</span></aside>
</footer>
</div>
<script type='text/javascript' src="http://code.jquery.com/jquery.min.js"></script> 
<script type='text/javascript' src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script>
<script type='text/javascript' src="js/displayPage.js"></script>
<script type="text/javascript">

  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-37298336-1']);
  _gaq.push(['_trackPageview']);

  (function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
  })();

</script>



Pas besoin du css ni des scripts normalement, si toutefois il en faut, dites le moi.

Merci Smiley smile

EDIT: Je viens de me rendre compte que IE (toutes les versions) ne charge aucun script js, c'est surement pour ça qu'il ne prend pas html5shiv. Peut-être qu'il faudrait plutôt chercher de ce côté la.
Modifié par Veens (08 Jan 2013 - 10:27)
Hello.

Tu travailles en local? IE est pointilleux avec les scripts quand on passe par le protocole file://, si c'est la cas, il doit certainement t'indiquer quelque chose du genre "Internet Explorer a restreint l’exécution des scripts ou des contrôles Active X sur cette page" en bas de page.

La meilleure solution étant de travailler sous un serveur local (un WAMP fait très bien l'affaire).

Au passage, mieux vaux éviter d'avoir quoi que ce soit avant le charset, tu peux appeler le shiv après sans souci.
Salut !

Je suis sous wamp.

J'ai fait quelques animations js pour le site, et rien ne fonctionne. J'ai tenté de mettre le js dans la page mais ça change rien.

Donc apparemment IE n'interprète pas mon JS, qu'il soit dans la page, dans un fichier ou par la console du navigateur. JS est bien activé.. Smiley murf

Je sèche la !
Modifié par Veens (08 Jan 2013 - 10:28)
Ça sent le JS cassé sous IE. Essaie de vérifier ton code avec un outil du type jsLint ou avec la console d'IE, c'est peux être tout bêtement une virgule qui traine dans un objet, du genre :
var truc = {
	machin: 'a',
	//La dernière virgule va casser le code sous IE, mais pas dans les autres navigateurs
	bidule: 'a',
}


Dans le doute, tu peux aussi virer tous les scripts autres que le shiv et ainsi être fixé sur le fait que ça vient bien d'un autre JS.

Si ça ne vient pas de là, ça va être difficile de t'aider sans une page en ligne.
Je savais pas qu'IE était plus sensible niveau js également. Smiley ohwell

Je pense que mon code est propre et de toutes manières ça ne fonctionne toujours pas en supprimant tous les scripts sauf le shiv. Smiley sweatdrop

Sinon quand je rentre un code dans la console, j'ai l'impressions qu'il ne se passe rien (un alert n'affiche aucune boite de dialogue). N'ayant pas l'habitude de la console d'IE, est ce que c'est normal ? Sinon peut-être qu'il y a un problème au niveau de mon navigateur.
Il y a un truc assez bizarre là. Smiley confus

Juste pour être sûr, tu es certain de ne pas être en mode de compatibilité? Normalement ça ne devrait pas avoir d'incidence (au pire tu aurais une erreur dans la console) mais dans le doute.

Tu peux aussi vérifier via l'onglet réseau que les js sont bien appelés même si je ne doute pas des chemin si ça marche dans les autres navigateurs.

Et dans la foulée des test à la con, tente aussi avec un alert dans un script inline dans une page vide de contenu (en ayant vérifié auparavant dans Firefox), histoire d'être certain que ça n'est pas un souci de réseau bizarre avec IE.

Désolé de ne pas pouvoir te donner de pistes plus sérieuses que ça, j'avoue que je sèche sur le coup.
Nop, j'suis pas en mode de compatibilité, et les js sont bien appelés.

IE doit bloquer tous les scripts, j'ai lancé d'autres scripts qui fonctionnent très bien sur d'autres navigateur, mais rien ne marche.

Donc ça doit venir de mon navigateur, peut être des paramètres mal réglés, mais je sais pas lesquels. Les scripts ASP sont activés, je vois pas où ca pourrait bloquer. Smiley sweatdrop