Я пытаюсь создать гаджет боковой панели без использования Visual Studio. Я навел справки о способах отладить их, но все говорит, что Visual Studio отладчик JIT является единственным способом сделать это.
Кто-либо смог отладить гаджеты боковой панели без Visual Studio?
В течение многих лет я не использовал Visual Studio для работы с гаджетами. Есть несколько способов отладки гаджетов без него, но не так тщательно. Например, вы не можете использовать команду debugger;
без надлежащего отладчика, подключенного к процессу. Что вы можете сделать, так это использовать программу вроде DebugView для перехвата сообщений, выводимых методом System.Debug.outputString ()
:
function test ()
{
System.Debug.outputString("Hello, I'm a debug message");
}
Это позволяет вам выводить дампы переменных и другие полезные лакомые кусочки информации на определенных этапах вашего кода, поэтому вы можете отслеживать их, как хотите.
В качестве альтернативы вы можете создавать собственные сообщения об отладке / остановке сценария, используя window.prompt ()
. alert ()
был отключен для гаджетов, а confirm ()
переопределен, чтобы всегда возвращать true, но они должны были пропустить prompt ()
.
function test ()
{
// execute some code
window.prompt(someVarToOutput, JSON.stringify(someObjectToExamine));
// execute some more code
}
Метод JSON.stringify ()
действительно помогает, если вы хотите проверить состояние объекта во время выполнения кода.
Вместо window.prompt
вы также можете использовать функцию VBScript MsgBox ()
:
window.execScript( //- Add MsgBox functionality for displaying error messages
'Function vbsMsgBox (prompt, buttons, title)\r\n'
+ ' vbsMsgBox = MsgBox(prompt, buttons, title)\r\n'
+ 'End Function', "vbscript"
);
vbsMsgBox("Some output message", 16, "Your Gadget Name");
Наконец, вы можете перехватывать все ошибки с помощью сценарий, использующий обработчик событий window.onerror
.
function window.onerror (msg, file, line)
{
// Using MsgBox
var ErrorMsg = 'An error has occurred'+(line&&file?' in '+file+' on line '+line:'')+'. The message returned was:\r\n\r\n'+ msg + '\r\n\r\nIf the error persists, please report it.';
vbsMsgBox(ErrorMsg, 16, "Your Gadget Name");
// Using System.Debug.outputString
System.Debug.outputString(line+": "+msg);
// Using window.prompt
window.prompt(file+": "+line, msg);
// Cancel the default action
return true;
}
Событие window.onerror
даже позволяет вывести номер строки и файл (точно только в IE8), в котором произошла ошибка.
Удачи в отладке, и не забывайте не оставлять ни одного окна.подсказки или MsgBoxes при публикации гаджета!
В Windows 7 новый реестр был добавлен ключ, который отображает ошибки сценария во время выполнения на данном ПК:
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Sidebar]
"ShowScriptErrors"=dword:00000001
Если это значение установлено, вы будете видеть диалоговые окна при возникновении ошибок сценария.