Javascript 无法在WebBrowser控件中使用Console.Log()

Javascript 无法在WebBrowser控件中使用Console.Log(),javascript,c#,Javascript,C#,因此,我正在使用C#Windows窗体编写Javascript编码UI。这是我按下“运行”按钮时的代码,以防有帮助: //如果单击右上角的按钮 私有无效运行\u单击(对象发送方,事件参数e) { //如果程序没有运行 如果(!正在运行) { //显示web浏览器 webBrowser1.Visible=true; richTextBox1.Visible=false; //将标签设置为“正在运行” status.Text=“正在运行”; //将html文本设置为如下所示 webBrowser1.

因此,我正在使用C#Windows窗体编写Javascript编码UI。这是我按下“运行”按钮时的代码,以防有帮助:

//如果单击右上角的按钮
私有无效运行\u单击(对象发送方,事件参数e)
{
//如果程序没有运行
如果(!正在运行)
{
//显示web浏览器
webBrowser1.Visible=true;
richTextBox1.Visible=false;
//将标签设置为“正在运行”
status.Text=“正在运行”;
//将html文本设置为如下所示
webBrowser1.DocumentText=“\n”+richTextBox1.Text+“\n”;
//将“运行”按钮设置为“停止”
run.Text=“停止”;
//将状态设置为“正在运行”
运行=真;
}
//否则
其他的
{
//显示文本框
webBrowser1.Visible=false;
richTextBox1.Visible=true;
//将标签设置为就绪
status.Text=“就绪”;
//走向虚无
webBrowser1.导航(“关于:空白”);
//将“停止”按钮设置为“运行”
run.Text=“run”;
//将状态设置为“未运行”
运行=错误;
}
}
我运行这个程序,在大多数情况下,一切正常。但是,当我尝试使用console.log()命令时,出现以下错误:

'console' is undefined
我还尝试了Console.Log(实际上我不懂Javascript,只是尽力了),但返回了相同的错误,“Console”是未定义的


另外,一旦console.log正常工作,如何打开WebBrowser控件上的控制台?我尝试过搜索internet,但在这两个问题上都没有结果。

是的,Console类在浏览器控件中不可用,但您可以创建这样的logger类

[ComVisible(true)]
public class Logger
{
    public void log(string s)
    {
        Console.WriteLine(s);
    }
}
并在浏览器控件中使用它

webBrowser1.ObjectForScripting = new Logger();
webBrowser1.DocumentText = "<script>external.log('TEST');</script>";
webBrowser1.ObjectForScripting=new Logger();
webBrowser1.DocumentText=“external.log('TEST');”;

您可以从Visual Studio中获取JavaScript控制台输出

默认情况下,webBrowser1控件使用IE7渲染其输出。IE7没有console.log()函数。为了使console.log()函数正常工作,您需要添加以下元标记:

<meta http-equiv="X-UA-Compatible" content="IE=11">

“IE=8”或更高版本应使console.log()对您可用

调试Windows窗体应用程序时,它将使用.NET托管代码调试器进行调试。为了进行不同的调试,请尝试选择“调试”>“无调试启动”,而不是按“播放”进行调试。现在,应用程序运行后,转到“调试”>“附加到进程”并找到WindowsFormsApplication.exe,使用脚本代码调试器而不是.NET托管代码调试器附加到它

现在,在Visual Studio中:

  • 您可以打开“调试”>“Windows”>“JavaScript控制台”
  • 您还可以打开“调试”>“Windows”>“DOM资源管理器”
你将如何“发现”这些步骤……[让人难以置信]……不管怎样,它还是有效的-谢谢!