1

我正在使用HTML和Javascript编写网页。此页面在WPF WebBrowser控件中打开。问题是,该页面上的JavaScript直接在Internet Explorer中正常工作,但在WebBrowser控件中无法正常工作,即使我已设置为使用Internet Explorer 11进行WebBrowser控件。是否有可能在WebBrowser控件中调试JavaScript代码

所以我不能在通常的浏览器中重现该问题来进行调试。它只能在WebBrowser控件中重现。

是否有可能在WebBrowser中调试JavaScript代码以便能够找到问题?我在WebBrowser的上下文菜单中看不到任何带有“检查”字样的项目。

回答

1

您的问题可能是由于使用旧版IE的WebBrowser控件而不是您在Windows中独立运行。

是的,你可以调试你的网页。 JavaScript有一个名为window.onerror的事件,其行为类似于全局try/catch。这对于捕捉意外的异常非常有用。

添加到您的JavaScript来添加自己的事件处理程序:

window.onerror = function(message, url, lineNumber) 
{ 
    window.external.errorHandler(message, url, lineNumber); 
} 

事件处理程序会调用的方法在WPF应用程序告诉你错误的详细信息。

在你的WPF应用程序中创建一个类,就像你的JavaScript能够访问的一样。

[System.Runtime.InteropServices.ComVisibleAttribute(true)] 
public class ScriptInterface 
{ 
    void errorHandler(string message, string url, string lineNumber) 
    { 
     MessageBox.Show(string.Format("Message: {0}, URL: {1}, Line: {2}")); 
    } 
} 

然后WebBrowser控件的ObjectForScripting属性设置为您的处理程序类的一个实例:

webBrowser1.ObjectForScripting = new ScriptInterface(); 
相关问题