1

Я пишу веб-страницу, используя HTML и Javascript. Эта страница открывается в элементе управления WPF WebBrowser. Проблема в том, что JavaScript на этой странице отлично работает в Internet Explorer напрямую, но не в элементе управления WebBrowser, даже я настроил использовать Internet Explorer 11 для управления WebBrowser.Есть ли возможность отлаживать код JavaScript в элементе управления WebBrowser

Поэтому я не могу воспроизвести проблему в обычном браузере для ее отладки. Он воспроизводится только в элементе управления WebBrowser.

Есть ли возможность отлаживать код JavaScript в WebBrowser, чтобы иметь возможность найти проблему? В контекстном меню WebBrowser я не вижу ни одного элемента с «Inspect».

ответ

1

Ваши проблемы, вероятно, связаны с управлением WebBrowser с использованием старой версии IE, чем в автономном режиме в Windows.

Да, вы можете отлаживать свою веб-страницу. В JavaScript есть событие под названием window.onerror, которое действует как глобальный try/catch. Это отлично подходит для обнаружения неожиданных исключений.

Добавьте это в JavaScript, чтобы добавить свой собственный обработчик события:

window.onerror = function(message, url, lineNumber) 
{ 
    window.external.errorHandler(message, url, lineNumber); 
} 

обработчик событий будет вызывать метод в приложении WPF, чтобы показать вам подробную информацию об ошибке.

Создайте класс в своем приложении WPF, как показано на рисунке, чтобы ваш JavaScript мог получить доступ.

[System.Runtime.InteropServices.ComVisibleAttribute(true)] 
public class ScriptInterface 
{ 
    void errorHandler(string message, string url, string lineNumber) 
    { 
     MessageBox.Show(string.Format("Message: {0}, URL: {1}, Line: {2}")); 
    } 
} 

Затем установите ObjectForScripting свойство элемента управления WebBrowser для экземпляра вашего класса обработчика:

webBrowser1.ObjectForScripting = new ScriptInterface(); 
Смежные вопросы