salutlacom Posté 8 Octobre 2006 Posté 8 Octobre 2006 CouCou tout le monde ! J'ai un petit probleme avec un script : Il a pour fonction de changer la feuille css de la page qui contient une iframe, apèrs quelque modif j'ai reussi a faire que celle ci puisse aussi beneficier du changement de styles mais voila il y a des liens qui charge une page dans l'iframe et a ce moment là, la page chargée ne prend pas en compte la feuille css demandée. Elle devrait pourtant chager la fueille css qui est enregistré dans le cookie ? Je suis on ne plus debutant mais j'espere avoir été clair qu'en même. Voila le script qui est apellé sur les pages contenant et contenues dans l'iframe: function setActiveStyleSheet(title) {var i, a, main;document.titop.src=title+".jpg";for(i=0; (a = document.getElementsByTagName("link")); i++) {if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title")) {a.disabled = true ;if(a.getAttribute("title") == title) a.disabled = false ;}}for(i=0; (a = parent.frames["iframe"].document.getElementsByTagName("link")); i++) {if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title")) {a.disabled = true;if(a.getAttribute("title") == title) a.disabled = false;}}}function getActiveStyleSheet() {var i, a;for(i=0; (a = document.getElementsByTagName("link")); i++) {if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title") && !a.disabled) return a.getAttribute("title");}return null;}function getPreferredStyleSheet() {var i, a;for(i=0; (a = document.getElementsByTagName("link")); i++) {if(a.getAttribute("rel").indexOf("style") != -1&& a.getAttribute("rel").indexOf("alt") == -1&& a.getAttribute("title")) return a.getAttribute("title");}return null;}function createCookie(name,value,days) {if (days) {var date = new Date();date.setTime(date.getTime()+(days*24*60*60*1000));var expires = "; expires="+date.toGMTString();}else expires = "";document.cookie = name+"="+value+expires+"; path=/";}function readCookie(name) {var nameEQ = name + "=";var ca = document.cookie.split(';');for(var i=0;i < ca.length;i++) {var c = ca;while (c.charAt(0)==' ') c = c.substring(1,c.length);if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);}return null;}window.onload = function(e) {var cookie = readCookie("style");var title = cookie ? cookie : getPreferredStyleSheet();setActiveStyleSheet(title);createCookie("style", title, 365);}var cookie = readCookie("style");var title = cookie ? cookie : getPreferredStyleSheet();setActiveStyleSheet(title);createCookie("style", title, 365);
AntiStatic Posté 9 Octobre 2006 Posté 9 Octobre 2006 Yo ! est-ce que par hasard les pages sur lesquelles le changement de styles ne se fait pas sont des pages qui ne sont pas hébergés sur ton site ? Car si c'est la cas, tu ne pourras pas changer les styles : erf je me cites : En javascript, tu ne pourra pas accéder aux objets, méthodes, propriétés HTML d'une page qui se trouve sur un autre domaine que ton javascript. Quand tu essaye de faire cela tu auras en retour un erreur te disant un truc du style : "Access denied". C'est une mesure de sécurité basique intégrée dans les navigateurs depuis un moment maintenant (IE j'en suis en fait j'ai jamais fais attention sous Firefox). Si ce n'est pas ca, essaye de matter dans la console javascript de Firefox l'erreur qui t'es retouné pour au mois, te et nous mettre sur la voie et tiens nous au courant ! ++
salutlacom Posté 13 Octobre 2006 Auteur Posté 13 Octobre 2006 CouCOu , (désolé pour le temps de réponse ) Tu m'as fait découvrir cete console qui est un outil plus que precieux Le contenu de l'iframe est bien sur sur mon site ! DOnc la console me renvoit une erreur car l'image titop se trouvant seulement sur la page contenant l'iframe mais même celle parti de code enlevée pour voir , le contenue de l'iframe ne change pas de skin si on le modifie c'est a dire qu'au chargement dans l'iframe les pages ne lisent pas le cookie pour prendre le skin enregistrée Je peux vous donner l'adresse pour vous rendre compte concretement : actualika.free.fr/musique.php
salutlacom Posté 14 Octobre 2006 Auteur Posté 14 Octobre 2006 CouCou, Finalement j'ai réussi a m'en sortir. En fait il fallait simplement remplacer le window.onload par document.onload ce qui semble assez logique car au chargement du nouveau contenu de l'iframe le fonction ne s'executait donc pas. Merci de ton aide et au revoir.
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant