使用invokescript将bopo值从javascript传递给c#

时间:2012-01-06 18:02:23

标签: c# javascript winforms browser

我有这段代码:

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 :(得分:0)

请注意,如果InvokeScript()调用抛出异常(例如,如果isEditing不存在),则表单将捕获异常,并且关闭请求将中止。

这可以解释为什么您的代码永远不会到达MessageBox.Show("End");并且不会关闭表单。

您应该能够在Visual Studio的“输出”窗口中看到任何捕获的异常信息,或者您可以通过转到Debug->Exceptions菜单并检查“公共语言运行时异常”选项来强制Visual Studio中断任何异常。