2010-09-06 3 views
0

J'utilise un script de redimensionnement de texte jQuery, ici http://demos.cool-javascripts.com/jquery-fontsize-controller.html. Le scipt est la suivante:Aide sur le script de redimensionnement des polices jQuery (nommage du cookie)

function fontSize(container, target, minSize, defSize, maxSize) { 
/*Editable settings*/ 
var minCaption = "Make font size smaller"; //title for smallFont button 
var defCaption = "Make font size default"; //title for defaultFont button 
var maxCaption = "Make font size larger"; //title for largefont button 


//Now we'll add the font size changer interface in container 
smallFontHtml = "<a href='javascript:void(0);' class='smallFont' title='" + minCaption +"'>" + minCaption + "</a> "; 
defFontHtml = "<a href='javascript:void(0);' class='defaultFont' title='" + defCaption +"'>" + defCaption + "</a> "; 
largeFontHtml = "<a href='javascript:void(0);' class='largeFont' title='" + maxCaption +"'>" + maxCaption + "</a> "; 
$(container).html(smallFontHtml + defFontHtml + largeFontHtml); 

//Read cookie & sets the fontsize 
if ($.cookie != undefined) { 
    var cookie = target.replace(/[#. ]/g,''); 
    var value = $.cookie(cookie); 
    if (value != null) { 
     $(target).css('font-size', parseInt(value)); 
    } else { 
     $(target).css('font-size', defSize); 
    } 
} 

//on clicking small font button, font size is decreased by 1px 
$(container + " .smallFont").click(function(){ 
    curSize = parseInt($(target).css("font-size")); 
    newSize = curSize - 1; 
    if (newSize >= minSize) { 
     $(target).css('font-size', newSize); 
    } 
    if (newSize <= minSize) { 
     $(container + " .smallFont").addClass("sdisabled"); 
    } 
    if (newSize < maxSize) { 
     $(container + " .largeFont").removeClass("ldisabled"); 
    } 
    updatefontCookie(target, newSize); //sets the cookie 

}); 

//on clicking default font size button, font size is reset 
$(container + " .defaultFont").click(function(){ 
    $(target).css('font-size', defSize); 
    $(container + " .smallFont").removeClass("sdisabled"); 
    $(container + " .largeFont").removeClass("ldisabled"); 
    updatefontCookie(target, defSize); 
}); 

//on clicking large font size button, font size is incremented by 1 to the maximum limit 
$(container + " .largeFont").click(function(){ 
    curSize = parseInt($(target).css("font-size")); 
    newSize = curSize + 1; 
    if (newSize <= maxSize) { 
     $(target).css('font-size', newSize); 
    } 
    if (newSize > minSize) { 
     $(container + " .smallFont").removeClass("sdisabled"); 
    } 
    if (newSize >= maxSize) { 
     $(container + " .largeFont").addClass("ldisabled"); 
    } 
    updatefontCookie(target, newSize); 
}); 

function updatefontCookie(target, size) { 
    if ($.cookie != undefined) { //If cookie plugin available, set a cookie 
     var cookie = target.replace(/[#. ]/g,''); 
     $.cookie(cookie, size); 
    } 
} 
} 

Il fonctionne très bien, et en collaboration avec le plug-in cookie jQuery, stocke correctement la taille de police souhaitée dans un cookie. Cependant, le cookie est toujours appelé à ce que la « cible » est, tel que défini dans l'appel de fonction:

function fontSize(container, target, minSize, defSize, maxSize) 
function fontSize(".fontResizer", ".wrapper", 11, 13, 15); 

Donc dans mon cas, il est toujours appelé « emballage ». Je ne peux pas pour la vie de moi comprendre comment spécifier un nom unique pour cela.

Quelqu'un a des idées?

Répondre

1

Eh bien, le script inclus utilise le nom de la cible comme nom de cookie. Ma suggestion est que vous ajoutez un nouveau paramètre appelé cookieName. La nouvelle signature serait alors:

function fontSize(container, target, minSize, defSize, maxSize, cookieName) 

Et dans toutes les références du script, utilisez plutôt cette valeur. Autrement dit, le changement par exemple ceci:

updatefontCookie(target, newSize); //sets the cookie 

à ceci:

updatefontCookie(cookieName, newSize); //sets the cookie 
Questions connexes