J'ai une fonction de jQuery simple:
$('#selectable1 span').live('mousedown', function() {
var ff = $(this).css("font-family");
$("#family").val(ff);
});
3 Réponses :
Font-famille donne une liste de valeurs séparées par des virgules, pas la police utilisée. Cela peut également donner la valeur dans des citations. Sur votre page exemple, ajouter la ligne alerte (FF) code> donne: p>
'fois neuf romain' code> p>
Georgia code> p>
adage-script-1, adage-script-2 code> p>
Chrome enveloppe les familles de polices ayant plusieurs mots avec des guillemets simples. Donc, la valeur de Font-famille retournée dans Chrome est la suivante: Considérant tous Ces variations de navigateur, je pense que la meilleure solution consiste à séparer les noms de famille par virgule, coupez la citation unique (le cas échéant) autour de chaque nom de police et joignez-les plus tard. Utilisez cette valeur désinfectée à l'intérieur de la liste Sélectionner. P> voir un Exemple . La liste de sélection devait être modifiée pour suivre ce schéma de dénomination cohérent pour les valeurs: p> Cela repose lourdement sur le fait qu'un Le nom de la police sera non strong> contenir des virgules, cité ou non. p> p> 'fois neuf romaine' code> qui ne correspond pas à la valeur dans la liste SELECT LIST Times New Roman code>. FontName [ FontName] code> p>
hmmm, donc je dois dépasser la valeur retournée des comas
+1, était juste sur le point de poster cela après avoir édité les balises et de fixer une faute de frappe. Il convient également de noter que Chrome insère également un espace après la virgule des familles de polices séparées par des virgules, c'est pourquoi cliquer sur "Adage" ne fonctionne pas non plus.
Merci Anurag. C'est aussi une excellente solution
Y a-t-il des noms de police contenant , code> dans les guillemets? Si c'est le cas, vous avez un boîtier de coin pour couvrir.
Les noms peuvent être hors de citations aussi bien qu'ils sont échappés. Font-famille: "My, génial polices" code> et Font-famille: mon \, génial \ font code> est à la fois légal. Chrome citera le second lorsqu'on accédera à la DOM, Firefox retournera simplement ce qui a été transmis dans lequel est un problème, car nous récupérons ma police génère indesome> et il n'y a aucun moyen de dire si mon code> est une police séparée. Cependant, en ignorant cet impossible à traiter de la situation, nous devrons écrire un petit analyseur pour ignorer les virgules à l'intérieur des chaînes citées :)
Vous pouvez légèrement modifier votre script pour remplacer les guillemets que WebKit ajoute lorsque le nom de police contient des espaces, comme celui-ci: et voici une approche de regex tirant la valeur littérale de style code> c'est probablement plus facile que tout , mais je ne suis pas un gourou de regex, quelqu'un se sent libre d'améliorer Ceci et mettre à jour la réponse (je suce à regex, désolé!) Cela fonctionne pour tous les exemples que vous avez. p> p>
@NICK: Bien que cela fonctionne pour «Times New Roman», le correctif devra également changer les valeurs de la boîte de sélection et la fixation de la manière dont les valeurs CSS sont spécifiées pour la compatibilité complète du navigateur. Vous pouvez voir cela même dans votre démonstration de travail :-)
@Andy - clarifie un peu? Vous pouvez appliquer la version sans guillemets, cela fonctionnera, permettez-moi d'ajouter à la démo.
@Mircea, @nick: Voir mon commentaire Répondre à La réponse d'Anurag < / a>. Chrome insère également des espaces après toutes les virgules dans Font-famille CODE> qui enfreint Adage.
@Mircea - Vous allez avoir un choix un format dans votre
@Mircea - regex est pas i> Mon truc, alors j'espère que quelqu'un puisse nettoyer cela, mais cette approche devrait fonctionner: jsfiddle.net/alaga/13
Thanx Nick, cela fonctionne. J'allais pour une solution "si", mais c'est bien mieux
+1 C'est des choses intéressantes que vous faites avec HTML5 et CSS3.
Merci d'anurag. Heureux que vous ayez remarqué.