我有这个代码:
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/