11524 sujets
JavaScript, DOM et API Web HTML5
ça, c'est interressant...
Il va falloir fixer l'encodage des pages incluses, et les fixer sous PHP à l'aide de
en étant sur au préalable de l'encodage réel des pages.
Deuxième point:
pour débugger l'importation des pages, il faudrait utiliser un des boutons inactif pour appeler une page
simple et bien identifiable, (avec des accents) et un div avec une bordure un peu épaisse. Tu visualiserais le résultat.
En effet, comme on intervient sur la hauteur de 'fond', si cette hauteur se trouve fixée par erreur à zero, on ne verrait rien. Mais avec une bordure, on verrait une ligne.
Garde toi la possibilité de désactiver la ligne qui agis sur le height pour vérifier que le reste marche: (en mettant deux slash)
(A ce propos, il faudra essayer sans "+ 'px'")
Troisième point :
document.documentElement, ça n'existe pas. C'est document.body...
(qu'est-ce qu'on est bête!!)
Référencement : quand on tape documentElement sur google, on tombe sur notre discussion.
Bon courage
Modifié par GeorgesM (06 Sep 2005 - 09:08)
Il va falloir fixer l'encodage des pages incluses, et les fixer sous PHP à l'aide de
<?php header("Content-Type: text/html; charset=utf-8"); ?>
ou
<?php header("Content-Type: text/html; charset=iso-8859-1"); ?>
en étant sur au préalable de l'encodage réel des pages.
Deuxième point:
pour débugger l'importation des pages, il faudrait utiliser un des boutons inactif pour appeler une page
simple et bien identifiable, (avec des accents) et un div avec une bordure un peu épaisse. Tu visualiserais le résultat.
En effet, comme on intervient sur la hauteur de 'fond', si cette hauteur se trouve fixée par erreur à zero, on ne verrait rien. Mais avec une bordure, on verrait une ligne.
Garde toi la possibilité de désactiver la ligne qui agis sur le height pour vérifier que le reste marche: (en mettant deux slash)
[b]// [/b]document.getElementById('fond').style.height = document.body.scrollHeight + 'px';
(A ce propos, il faudra essayer sans "+ 'px'")
Troisième point :
document.documentElement, ça n'existe pas. C'est document.body...
(qu'est-ce qu'on est bête!!)
Référencement : quand on tape documentElement sur google, on tombe sur notre discussion.
Bon courage
Modifié par GeorgesM (06 Sep 2005 - 09:08)
J'ai vu des choses :
Il y a encore un défaut dans la fonction qui utilise XmlHttpRequest.
Le send n'est pas bien placé. D'autre part, on ne fixe pas de header.
J'ai réecris quelquechose de plus léger, et plus facile à comprendre :
Comme les requettes sont en mode GET et qu'on n'envoie pas de données, on peu élaguer pas mal de if...
Modifié par GeorgesM (06 Sep 2005 - 17:39)
Il y a encore un défaut dans la fonction qui utilise XmlHttpRequest.
Le send n'est pas bien placé. D'autre part, on ne fixe pas de header.
J'ai réecris quelquechose de plus léger, et plus facile à comprendre :
function sendData(page,div)
{
var content = document.getElementById(div);
if(document.all)
var XhrObj = new ActiveXObject("Microsoft.XMLHTTP") ;
else
var XhrObj = new XMLHttpRequest();
XhrObj.open("GET", page);
XhrObj.onreadystatechange = function()
{
if (XhrObj.readyState == 4)
{
content.innerHTML = XhrObj.responseText;
[b]document.getElementById('fond').style.height = document.body.scrollHeight; // içi notre modification de hauteur[/b]
}
}
[b]XhrObj.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
XhrObj.send(null);[/b]
}
Comme les requettes sont en mode GET et qu'on n'envoie pas de données, on peu élaguer pas mal de if...
Modifié par GeorgesM (06 Sep 2005 - 17:39)
@Georges:
Je trouvais aussi ce truc là assez bizarre, car il rendait mal avec le colorage du code dans mon éditeur...
Soucis: les pages ne s'importent plus.
La div, même sans hauteur, on la voit encore, puisque de toute facon il y a la grosse image de malle dedans.
Comme la page ne s'importe plus, je ne peux pas te dire si ca marche mieux pour notre div...
Le code source de mon javascript.js est actuellement:
Firefox me dit, dans sa console:
La ligne 16 que voici:
Si on ne trouve pas ce n'est pas grave, j'ai eu l'idée de passer outre avec un position:fixed et une émulation pour internet explorer...
Néanmoins, c'est moins clean, je préfèrais la solution en javascript qui touche pas à mon CSS... Et je n'aime pas que quelque chose ne marche pas, et je préfère le faire fonctionner plutot que passer outre
@Solo:
Ton truc à l'air bien, mais trop bien pour moi, il fait trop de choses, or le fichier js que j'ai actuellement risque d'etre beaucoup sollicité, aussi, préférons les choses simples que les usines a gaz qui font tout, mais qui consomment beaucoup de bande passante !
Modifié par Sylvain (06 Sep 2005 - 17:27)
Je trouvais aussi ce truc là assez bizarre, car il rendait mal avec le colorage du code dans mon éditeur...
Soucis: les pages ne s'importent plus.
La div, même sans hauteur, on la voit encore, puisque de toute facon il y a la grosse image de malle dedans.
Comme la page ne s'importe plus, je ne peux pas te dire si ca marche mieux pour notre div...
Le code source de mon javascript.js est actuellement:
function sendData(page,div)
{
var content = document.getElementById(div);
if(document.all)
var XhrObj = new ActiveXObject("Microsoft.XMLHTTP") ;
else
var XhrObj = new XMLHttpRequest();
XhrObj.open("GET", page);
XhrObj.onreadystatechange = function()
{
if (XhrObj.readyState == 4)
{
content.innerHTML = XhrObj.responseText;
document.getElementById('fond').style.height = document.body.scrollHeight; // içi notre modification de hauteur
}
}
XhrObj.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
XhrObj.send(null);
}
function getFile(page){sendData('null', page, 'GET', 'cache')}
function description(page){sendData('null', page, 'GET', 'description')}
Firefox me dit, dans sa console:
La console de Firefox a écrit :
Erreur: content has not properties (ligne 16)
La ligne 16 que voici:
content.innerHTML = XhrObj.responseText;
Si on ne trouve pas ce n'est pas grave, j'ai eu l'idée de passer outre avec un position:fixed et une émulation pour internet explorer...
Néanmoins, c'est moins clean, je préfèrais la solution en javascript qui touche pas à mon CSS... Et je n'aime pas que quelque chose ne marche pas, et je préfère le faire fonctionner plutot que passer outre
@Solo:
Ton truc à l'air bien, mais trop bien pour moi, il fait trop de choses, or le fichier js que j'ai actuellement risque d'etre beaucoup sollicité, aussi, préférons les choses simples que les usines a gaz qui font tout, mais qui consomment beaucoup de bande passante !
Modifié par Sylvain (06 Sep 2005 - 17:27)
bon, les accents remarchent avec ton header en php (je suis très bete aussi de ne pas y avoir pensé), et, tu l'auras deviné car j'ai testé les accents, la malle s'affiche !!!
cependant, la div n'est toujours pas à 100% de hauteur... en fait, elle n'a pas de hauteur définie, elle s'adapte en fonction de la hauteur de la malle
cependant, la div n'est toujours pas à 100% de hauteur... en fait, elle n'a pas de hauteur définie, elle s'adapte en fonction de la hauteur de la malle
Il reste un petit bug dans le script...
est exécuté à chaque changement de page et va donc créer des erreurs quand 'fond' n'existe pas ou plus.
En attendant mieux, on doit faire:
pour éviter l'erreur.
document.getElementById('fond').style.height = document.body.scrollHeight;
est exécuté à chaque changement de page et va donc créer des erreurs quand 'fond' n'existe pas ou plus.
En attendant mieux, on doit faire:
if (document.getElementById('fond'))
{
document.getElementById('fond').style.height = document.body.scrollHeight;
}
pour éviter l'erreur.