Bonjour, bonjour,
Je suis en train de faire un navigateur perso pour donner accès à des clients/collaborateurs/recruteurs aux projets que j'ai développé. Mais j'ai un petit souci avec notre grand ami Internet Explorer...
J'ai une gestion d'onglets, et je peux charger mes projets dans des iframes. Lorsque l'iframe est chargée, je récupère le titre de l'iframe, et je remplace le texte de l'onglet actif par ce dernier.
En gros, ça marche comme ça :
Donc c'est formidable, ça marche avec FF3+, Opera, Safari, Chrome sur Mac ou PC. Mais pour IE, ça marche quedale... Ça ne marche tellement pas, qu'aucune action incluse dans le load() ne se lance sous IE. J'ai testé avec un simple alert() et rien, nada...
Ah, et pour préciser d'où vient cette histoire de load() (d'ailleurs j'ai du mal à comprendre comment marche ce détournement de la fonction load()... vu qu'il n'y pas d'appel d'url), j'ai trouvé ça ici
Et enfin, vous pouvez voir une demo là :
Merci d'avance
PS : j'ai testé avec le plugin frameready, mais sans succès.
PS 2 : j'ai un autre souci, mais je ne pense pas qu'il y ait possibilité de le régler (car c'est un bug déclaré de FF). Sous Firefox, si je charge un contenu en flash, que je passe à un autre onglet et que je reviens sur l'onglet qui affiche le contenu en flash, le flash se recharge... Apparemment dès que du flash sort du viewport, puis qu'il re-rentre dedans ben ça le recharge. Le problème n'apparait qu'avec FF.
Modifié par ZeB_panam (16 Mar 2010 - 00:04)
Je suis en train de faire un navigateur perso pour donner accès à des clients/collaborateurs/recruteurs aux projets que j'ai développé. Mais j'ai un petit souci avec notre grand ami Internet Explorer...
J'ai une gestion d'onglets, et je peux charger mes projets dans des iframes. Lorsque l'iframe est chargée, je récupère le titre de l'iframe, et je remplace le texte de l'onglet actif par ce dernier.
En gros, ça marche comme ça :
function load_projet(projet){
// On remplace l'iframe active par une nouvelle avec la source correspondante
source="<iframe width='100%' height='100%' id='f_"+f_active+"' name='f_"+f_active+"' frameborder='0' src='projets/"+projet+"'></iframe>";
$("iframe#f_"+f_active).replaceWith(source);
// On teste l'objet iframe pour voir si on est face à IE ou un autre navigateur
var iframe_en_cours = $($.browser.msie ? frames['f_'+f_active] : "#f_"+f_active);
iframe_en_cours.load( function() {
var w = this.contentWindow;
if(!w){
w = iframe_en_cours[0];// IE
}
// On récupère le titre de l'iframe via l'objet w
titre_frame=w.document.title;
// On insère ce titre dans l'onglet
source="<a href='#'><span class='titre'>"+titre_frame+"</span></a><a href='#'><span class='close'>Fermer cet onglet</span></a>";
$("#"+f_active).html(source);
});
}
Donc c'est formidable, ça marche avec FF3+, Opera, Safari, Chrome sur Mac ou PC. Mais pour IE, ça marche quedale... Ça ne marche tellement pas, qu'aucune action incluse dans le load() ne se lance sous IE. J'ai testé avec un simple alert() et rien, nada...
Ah, et pour préciser d'où vient cette histoire de load() (d'ailleurs j'ai du mal à comprendre comment marche ce détournement de la fonction load()... vu qu'il n'y pas d'appel d'url), j'ai trouvé ça ici
Et enfin, vous pouvez voir une demo là :
Merci d'avance

PS : j'ai testé avec le plugin frameready, mais sans succès.
PS 2 : j'ai un autre souci, mais je ne pense pas qu'il y ait possibilité de le régler (car c'est un bug déclaré de FF). Sous Firefox, si je charge un contenu en flash, que je passe à un autre onglet et que je reviens sur l'onglet qui affiche le contenu en flash, le flash se recharge... Apparemment dès que du flash sort du viewport, puis qu'il re-rentre dedans ben ça le recharge. Le problème n'apparait qu'avec FF.
Modifié par ZeB_panam (16 Mar 2010 - 00:04)