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(); 
相關問題