Передайте значение bool из JavaScript в C #, используя invokescript - PullRequest
1 голос
/ 06 января 2012

У меня есть этот код:

private void frmMain_FormClosing(object sender, FormClosingEventArgs e)
    {
        bool isEditing = (bool)webBrowser1.Document.InvokeScript("isEditing");

        MessageBox.Show("End");
        e.Cancel = false;
    }

Программа не закрывается и не доходит до MessageBox.Show("End"); Удаление строки bool isEditing = (bool)webBrowser1.Document.InvokeScript("isEditing"); заставляет ее работать (и программа завершается).

isEditing - это функция javascript, которая выглядит следующим образом:

function isEditing(){ return editing; } // editing being either true or false

Я не знаю, как получить какие-либо сообщения об ошибках через консоль отладки в c # (хотя, если кто-то хочетНаправьте меня в правильном направлении, тогда я смогу вернуться и опубликовать его).

В конечном итоге я хочу иметь скрипт, который не позволяет закрывать форму, если я редактирую в своем веб-браузере.(Но я не могу добраться до первой строки!)

Что я делаю не так?И если так, то что с ним не так?

Спасибо

1 Ответ

0 голосов
/ 27 января 2012

Обратите внимание, что если вызов InvokeScript() вызывает исключение (например, если isEditing не существует), то исключение будет перехвачено формой, и запрос на закрытие будет прерван.

Это можетобъясните, почему ваш код никогда не достигает MessageBox.Show("End"); и не закрывает форму.

Вы должны иметь возможность видеть любую пойманную информацию об исключениях в окне вывода в Visual Studio или вы можете заставить Visual Studio прерваться.на любое исключение, перейдя в меню Debug->Exceptions и выбрав опцию Common Language Runtime Exceptions.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...