Mes impressions sur le web, les standards et autres…


Consultation hors ligne

Je ne sais plus comment j’en suis venu là, mais je me suis rendu compte que si une personne tente d’enregistrer une page du site, les choses ne se passent pas tout à fait comme prévu. Sur tous les navigateurs avec lesquels j’ai testé, le comportement est plus ou moins le même : Le navigateur propose d’enregistrer la page en lui donnant pour nom son titre, et éventuellement en lui proposant de lui même l’extension .html ou .htm. D’une part, ce n’est pas très pratique (voir le titre de l’index du journal par exemple), et d’autre part, comme je le disais, certains navigateurs n’affectent ou ne proposent aucune extension au fichier (Firebird par exemple) (Ok, en fait, cela concerne uniquement les pages servies avec l’entête application/xhtml+xml. Pour les pages servies en tant que HTML, le navigateur télécharge la page et tous les éléments qui la composent), ce qui est assez génant.

Et puis je me suis rappellé de l’entête Content-Disposition. Outre la possibilité de définir comment est fourni le document (je ne vois pas d’autres façons de décrire), on peut également spécifier un nom de fichier pour le document. Ainsi, si vous enregistrez le document qui est à l’adresse http://webnaute.net/Journal/RSS, le nom de fichier par défaut que devrait vous proposer votre navigateur est "journal.rdf". Pour les pages du site, voici le code que j’utilise au moment de l’envoi des entêtes :

if( $filename == '' )
{
    $filename  = str_replace(' ', '_', trim(str_replace('/', ' ', $_SERVER['REQUEST_URI'])));
    $filename .= ( $this->output_xhtml ) ? '.xhtml' : '.html';
}

header('Content-Disposition: inline; filename="' . $filename . '"');

J’ai remarqué au passage que si la page est enregistré avec l’extension .xhtml, Firebird considèrera implicitement que le contenu est de type application/xhtml+xml (vérifiable avec click droit -> View Page Info).

PS : Dois-je préciser que IE, encore une fois, joue les trouble fêtes en ignorant complètement l’entête Content-Disposition ?

Vos réactions, opinions, insultes…

Rétroliens

Faire un rétrolien sur ce billet : [trackback]

Commentaires

Pas de commentaire actuellement

L’ajout de commentaires sur ce billet n’est pas/plus autorisé.