Javascript 无法在WebBrowser控件中使用Console.Log()
因此,我正在使用C#Windows窗体编写Javascript编码UI。这是我按下“运行”按钮时的代码,以防有帮助: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.
//如果单击右上角的按钮
私有无效运行\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资源管理器”