J'expérimente l'écriture de gadgets Vista/W7. Dans mon expérience, je veux écrire la date de modification de certains fichiers sur le système. Le problème est que si je veux utiliser des fonctions de manipulation de chaînes, le gadget arrête juste d'écrire sa sortie. Une partie du code du gadget ressemble à ceci:Opérations de chaîne dans le javascript du gadget Vista/W7
function format_lmd(lmd)
{
// Parse something like "Sun Aug 26 17:13:22 UTC+0200"
var lmdFields = lmd.split(' ');
//weekday = lmdFields[0];
//month = lmdFields[1];
//monthday = lmdFields[2];
//moment = lmdFields[3];
//return monthday+' '+month+' '+moment;
return lmd;
}
function paintGadget()
{
var fileitem = System.Shell.itemFromPath("c:\\myfile.txt");
//canvas.addTextObject(' '+fileitem.modifyDate, 'Segoe UI', 9, 'white', text_offset, 21);
var result = null;
result = ' ';
result += format_lmd(fileitem.modifyDate);
canvas.addTextObject(result, 'Segoe UI', 9, 'white', text_offset, 21);
}
L'appel à partager (dans la fonction format_lmd) semble arrêter le script (ou mieux: jeter une exception). Bien que la documentation semble indiquer que la fonction split peut être utilisée pour diviser une chaîne en plusieurs parties, cela ne fonctionne pas dans mon cas.
Questions:
- Comment dois-je utiliser correctement la méthode du partage?
- Je n'avais pas utilisé Javascript auparavant alors quand déclarer une variable avec "var" et quand cela ne reste pas un mystère pour moi. Y a-t-il une bonne introduction au Javascript qui peut être utilisé pour les gadgets?
- Quelle est la meilleure façon de déboguer un gadget?
Merci, Patrick
EDIT: J'ai trouvé comment activer le débogueur JavaScript (voir http://msdn.microsoft.com/en-us/library/bb456467%28v=VS.85%29.aspx#_sidebar_overview_debugging_basic). Une fenêtre de débogage apparaît maintenant et dit "Objet attendu", mais cela ne m'aide pas vraiment.
Je n'ai pas Vista/W7 pour tester maintenant, mais avez-vous essayé '.split (/ /)'? – kennytm
La fenêtre du débogueur indique toujours "Objet attendu". J'ai essayé d'utiliser votre suggestion, mais cela n'aide pas. Merci quand même. – Patrick
Qu'est-ce que 'modifyDate'? Êtes-vous sûr que c'est une chaîne? Je devine que la valeur de 'lmd' est nulle passée dans la fonction. – jtbandes