Javascript, pas d'affichage sous IE

Résolu/Fermé
Nivekio Messages postés 34 Date d'inscription vendredi 21 mai 2010 Statut Membre Dernière intervention 4 janvier 2012 - 20 janv. 2011 à 16:56
Nivekio Messages postés 34 Date d'inscription vendredi 21 mai 2010 Statut Membre Dernière intervention 4 janvier 2012 - 27 janv. 2011 à 19:55
Bonjour,

Je suis actuellement un stagiaire, je programme un logiciel incorporant un navigateur sous VB.NET ( donc tres proche d'internet explorer).

Le probleme c'est que la page ne s'affiche que sous mozilla ( teste sous chrome et IE en plus)

Ma question est donc la suivante : quelle serait la ligne de code a modifier afin de rendre la page compatible. ( Apres recherche de mon tuteur il pense que ca vient du code javascript... mais n'y connaissant pas grand chose c'est assez dur pour moi de trouver l'endroit du code buggant).



Voici le code :


<?php
////initialisation des variables:
$ecran = 'C'; //valeur a chager selon l'ecran : voir la base de donnée
$tab_php=array();
$tab_tempo=array();
//// include:
include("./include/function.php");
include("./include/connexion.inc.php");
if (isset($_GET['ecran']))
$ecran = mysql_real_escape_string($_GET['ecran']);
include("./css/parser.php");

$query = mysql_query("SELECT * FROM '".$base_settings."' WHERE 1") or die(mysql_error());
$global_settings = mysql_fetch_array($query);
$time = time();
$sql = mysql_query("SELECT * FROM ".$base_page." WHERE ('Ecran' LIKE '%".$ecran."%' AND 'date_start'<'".$time."' AND 'Validation'='1') AND ('date_end'>'".$time."' OR 'date_end'='0')") or die ("Pb avec la requette ".mysql_error());
$nbr_enr_trouves=mysql_num_rows($sql);

$content_tab = array();
$max_p = 0;
for ($i = 0;($row = mysql_fetch_array($sql, MYSQL_ASSOC)); $i++)
{
$content_tab[$i] = $row;
if ($row['priority'] > $max_p)
$max_p = $row['priority'];
}
$k = 0;
for ($i = 0; $i < 3; $i++) {
for ($j = 0; isset($content_tab[$j]) && $content_tab[$j]; $j++)
{
if ((($i == 0) && (($content_tab[$j]['priority'] == 3) || ($content_tab[$j]['priority'] == 2))) ||
(($i == 1) && (($content_tab[$j]['priority'] == 3) || ($content_tab[$j]['priority'] == 1))) ||
(($i == 2) && (($content_tab[$j]['priority'] == 3) || ($content_tab[$j]['priority'] == 2))))
{
$query = mysql_query("SELECT * FROM 'affich_ecran' WHERE 'Ref'='".$ecran."'");
$query = mysql_fetch_array($query);
$textarea_default_width = 840;
$screen_width = intval($query['width']);
$ratio = $screen_width / $textarea_default_width;
$tab_php[$k] = parse($content_tab[$j]['Texte'], $ratio);
if (intval($content_tab[$j]['tempo']) > 0)
$tab_tempo[$k]=$content_tab[$j]['tempo'];
else
$tab_tempo[$k]=intval($global_settings['time_default']);
$k++;
}
}
}
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="fr">
<head>
<link rel="StyleSheet" type="text/css" href="css/parser.php?css=<?php echo $ecran; ?>">
<meta content="text/html; charset=ISO-8859-1" http-equiv="content-type" /><title>
<META HTTP-EQUIV="refresh" CONTENT="300; URL=<?php echo $_SERVER['REQUEST_URI']; ?>">
<script type="text/javascript">
function affiche_texte(i){
//on va seulement passer au script JS le nombre de textes a afficher
var nbr_div = <?php echo $k; ?>;
//on va aussi lui passer l'array tempo
//on va generer l'array JS a partir de celui en php
<?php
$j=0;
echo 'var tableau_tempo = new Array(';
foreach($tab_tempo as $value) {
echo intval($value);
$j++;
if($j<sizeof($tab_tempo))
echo ',';
}
echo ');';
?>
//partie affichage successif d'un des textes
// a chaque appel de la fonction a va en afficher un et masquer les autres
//pour cela on fait une boucle qui les parcours tous et mets seulement celui concerne a display=block et tous les autres a display=none
for(j=0;j<nbr_div;j++){
var obj=document.getElementById('id_'+j); //on atteint le div
if(j==i){
//si le numero du div est egal a celui que l'on veut afficher
if(document.getElementById('id_'+j).style.display=='none'){
//et si il est masque on l'affiche
document.getElementById('id_'+j).style.display='block';
}
}else{
//pour tous les autres si il sont affiches on les masque
if(document.getElementById('id_'+j).style.display=='block'){
document.getElementById('id_'+j).style.display='none';
}
}
}
// partie gestion de boucle et rebouclage au debut
var tempo=1000*tableau_tempo[i]; //ca permet de mettre la tempo en secondes dans la base
i++; //incrementation pour passer au div suivant
if (i == nbr_div) i=0; //on a atteint la fin on remet la variable i parametre d'appel de la fonction a 0

//partie tempo et rappel fonction
setTimeout(function(){affiche_texte(i);},tempo);//tempo en milisecondes
}
</script>
</head>
<body onLoad="javascript:affiche_texte('0');" class="afficheur_body" style="cursor:url(images/cacher.ico),default" oncontextmenu="return false">
<a style="cursor:url(images/cacher.ico),default" id="hide_cursor_link" href=""></a>
<div class="ban_afficheur"><img src="images/ban_afficheur.png" class="img_ban" /></div>
<div class="date">
<marquee<?php echo ' style="color: '.$global_settings['color'].';">'.textparser($global_settings['message_default']); ?></marquee>
</div>
<div id="zone_affichage">
<?php
if($nbr_enr_trouves>0){ //si enr trouves dans la BDD
//a chaque passage de la boucle on va generer une "boite" div contenant chaque texte
foreach($tab_php as $cle=>$value) {
//$cle= index de l'array c. a. d. 0 1 2 on va s'en servir pour genrer dynamiquement l'id du div
//$value contient le texte a afficher a chaque fois
echo '<div id="id_'.$cle.'" class="afficheur" style="display:none;">'.$value.'</div>';
}
}else{// si aucun enr trouve
echo 'Aucun enregistrement, correspondant au critère, trouvé dans la base !';
}
?>
</div>
</body>
</html>


J'espere que c'est lisible ^^ et attends vos reponses/suggestions ! Merci d'avance.


3 réponses

Akronos Messages postés 140 Date d'inscription jeudi 6 janvier 2011 Statut Membre Dernière intervention 31 janvier 2011 32
20 janv. 2011 à 17:05
J'ai pas le temps de tout regarder dans ton code. Mais même si ça ne changera rien à ton problème, remplace tes
include("nomfichier.extension);

par
require_once("nomfichier.extension")


Aussi si tu n'as rien du tout qui s'affiche (page blanche), fais ctrl+U pour voir le code source de ta page et s'avoir où l'éxécution s'arrête. Je pense plus que ça vient du php.

Mais en début de fichier: error_reporting("E_ALL");
0
Nivekio Messages postés 34 Date d'inscription vendredi 21 mai 2010 Statut Membre Dernière intervention 4 janvier 2012 2
20 janv. 2011 à 18:14
Merci ^^ je vais transmettre le tout a mon tuteur de stage !
0
Nivekio Messages postés 34 Date d'inscription vendredi 21 mai 2010 Statut Membre Dernière intervention 4 janvier 2012 2
27 janv. 2011 à 19:55
Bien on a trouvé LA solution : au niveau du meta y'avait un " <title> qui se promené ( ouvert et jamais fermé :-( )
0