c# - 使用 invokescript 将 bool 值从 javascript 传递到 C#

标签 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# 中的调试控制台获取任何错误消息(尽管如果有人想给我指出正确的方向,那么我可以回来发布它)。

我最终想要做的是有一个脚本,可以在我在网络浏览器中进行编辑时阻止表单关闭。 (但我似乎无法到达第一行!)

我做错了吗?如果是这样,那有什么问题吗?

谢谢

最佳答案

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

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

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

关于c# - 使用 invokescript 将 bool 值从 javascript 传递到 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8762291/

相关文章:

c# - 存储设置的最佳方式(特殊要求)

c# - 将 VIEW 作为 STRING 传递

javascript jquery 使用脚本更改脚本的src

javascript - Google map 看起来在 div 内移动了

C# 将图片框添加到面板

c# - TabTip 键盘 c# 的设置位置不起作用

c# - 迭代上下文类型的查询结果时发生异常。连接已关闭

javascript - AJAX 刷新后按钮不起作用的 Woocommerce 数量增量,并且自动加载仅在点击 2 次后触发

c# - 禁用 Alt 键的正常行为

c# - 自定义组件属性具有唯一值