簡體   English   中英

是否有可能在 WebBrowser 控件中調試 JavaScript 代碼

[英]Is there a possibility to debug JavaScript code in a WebBrowser control

我正在使用 HTML 和 Javascript 編寫網頁。 此頁面在 WPF WebBrowser 控件中打開。 問題是此頁面上的 JavaScript 可以直接在 Internet Explorer 中正常工作,但在 WebBrowser 控件中卻無法正常工作,即使我已設置為將 Internet Explorer 11 用於 WebBrowser 控件。

所以我無法在通常的瀏覽器中重現這個問題來調試它。 它只能在 WebBrowser 控件中重現。

是否有可能在 WebBrowser 中調試 JavaScript 代碼以找到問題? 我在 WebBrowser 的上下文菜單中沒有看到任何帶有“Inspect”字樣的項目。

您的問題可能是由於WebBrowser控件使用的 IE 版本比您在 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();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM