Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Companheiros,
Por que meu código só está funcionando no google chrome?
Tenho apenas duas folhas de estilo;
<link rel="stylesheet" type="text/css" href="padrao.css">
<link rel="alternate stylesheet" type="text/css" href="contraste.css">
Tenho um botão que funciona como um switch, liga-desliga:
<input type="button" value=" Liga/Desliga contraste " id="bt_contraste">
(function($){
$.folha = function(modo) {
var normal = "stylesheet"; // stylesheet padrão
var contraste = "alternate stylesheet"; // stylesheet com alto contraste. obs.: só usarei uma css alternativa, por isso elaborei a função desta forma
if (modo=='inicia') { //no carregamento do site verifico se há um cookie folha_atual, se tiver habilito a mesma.
if ($.cookie("folha_atual")) {
$("link[rel!='"+$.cookie("folha_atual")+"']")[0].disabled=true; //o que for diferente do cookie eu desabilito
$("link[rel='"+$.cookie("folha_atual")+"']")[0].disabled=false; //o que for igual ao cookie eu habilito
}
}
else if (modo=='troca') { //se foi pressionado o botão para alterar contraste, então:
if ($.cookie("folha_atual")) { //vejo se exist o cookie folha_atual, se existir:
if ($.cookie("folha_atual")==normal) { //se for igual a normal (variável declarada no início do script):
$("link[rel='"+$.cookie("folha_atual")+"']")[0].disabled=true; //desabilito a folha de estilo com a rel=cookie que estamos usando
$.cookie("folha_atual",contraste) // altero o cookie para o conteúdo da variável contraste
$("link[rel='"+$.cookie("folha_atual")+"']")[0].disabled=false; //habilito a folha de estilos para a rel=cookie, ja que o cookie agora tem outro valor
}
else if ($.cookie("folha_atual")==contraste) { //nesta parte faço exatamente o contrário da anterior, caso a cookie esteja com o valor de contraste
$("link[rel='"+$.cookie("folha_atual")+"']")[0].disabled=true;
$.cookie("folha_atual",normal)
$("link[rel='"+$.cookie("folha_atual")+"']")[0].disabled=false;
}
}
else { // se ainda não há cookie:
$("link[rel='stylesheet']")[0].disabled=true; // desabilito a folha atual
$.cookie("folha_atual",contraste) // salvo o cookie com o valor da variável contraste
$("link[rel='"+$.cookie("folha_atual")+"']")[0].disabled=false; //habilito a folha de estilo (valor recebido pela cookie)
}
}
}
$(document).ready(function(){ //quando tudo estiver carregado na página
$.folha("inicia"); //dou um start pra ver se há cookie da folha de estilo
$("#bt_contraste").click(function(){ // ao clicar no botão switch
$.folha("troca"); //executo a função para trocar a folha atual
return false;
});
});
})(jQuery);
Alguém pode me ajudar? No IE8 e no firefox, quando clico no botao switch, o site fica sem nenhuma folha de estilo, perde toda a formatação, ou seja, estou conseguindo desabilitar a folha atual, mas não está habilitando a folha com alto contraste. No Chrome funciona perfeitamente.
Grato,
Benê.
Carregando comentários...