Я экспериментирую с написанием гаджетов Vista/W7. В моем эксперименте я хочу написать дату изменения некоторых файлов в системе. Проблема в том, что если я хочу использовать функции манипуляции строками, гаджет просто перестанет писать свой вывод. Часть кода гаджета выглядит следующим образом:Строковые операции в javascript в Vista/W7 gadget
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);
}
Вызов расколоть (в функции format_lmd), кажется, чтобы остановить скрипт (или лучше: бросить исключение). Хотя документация, похоже, указывает на то, что функция split может использоваться для разбиения строки на несколько частей, в моем случае это не работает.
Вопросы:
- Как я должен правильно использовать метод разделения?
- Я не использовал Javascript раньше, поэтому, когда объявлять переменную с «var», а когда не остается загадкой для меня. Есть ли хорошее введение в Javascript, который можно использовать для гаджетов?
- Каков наилучший способ отладки гаджета?
Спасибо, Патрик
EDIT: я узнал, как включить отладчик Javascript (см http://msdn.microsoft.com/en-us/library/bb456467%28v=VS.85%29.aspx#_sidebar_overview_debugging_basic). Откроется окно отладки и говорит «Объект ожидается», но это на самом деле не помогает мне.
у меня нет Vista/W7, чтобы проверить сейчас, но вы пробовали '.split (/ /)'? – kennytm
Окно отладчика всегда сообщает «Ожидаемый объект». Пробовал использовать ваше предложение, но это не помогает. Спасибо, в любом случае. – Patrick
Что такое 'modifyDate'? Вы уверены, что это строка? Я предполагаю, что значение 'lmd' равно null, переданному в функцию. – jtbandes