2014-01-07 868 views

回答

0

我发现没有办法检查或调试与webkitdotnet项目的HTML/JavaScript。而且它似乎没有保持一段时间。

所以,如果你必须移动到其他Web引擎的能力,我会建议CefSharp - Embedded Chromium for .NET。我相信这是一个强大的引擎,它具有webkitdotnet所具有的所有功能,并且它允许附加Chrome浏览器检查器来调试页面。要做到这一点,你需要设置RemoteDebuggingPort属性:

var settings = new CefSettings(); 
settings.RemoteDebuggingPort = 8088; 

Cef.Initialize(settings); 

然后你就可以在Chrome浏览器中打开URL http://localhost:8088附加在你的应用程序运行嵌入式引擎。

CefSharp项目的源代码同时包含WinForms和WPF应用程序的例子。用这个例子你可以很容易地开始。

更新:在撰写本文时,CefSharp组件不支持将全页快照作为图像。我在分支分支https://github.com/ivan-sam/CefSharp中创建了ChromiumWebBrowserWithSnapshotSupport类。我已经修改了CefSharp.Wpf.Example项目并添加了快照按钮,可以创建页面的快照并打开图像。您也可以使用ElementHost将此控件放在WinForms窗体上。

如果您不能移动,我看到的唯一可用的选项是与所有相关内容(脚本,CSS等),本地下载相关页面,并与本地Web服务器承载它。然后修改它使用Firebug Lite这篇文章中描述(http://habrahabr.ru/post/154917/ - 这是俄罗斯):

<!DOCTYPE html> 
<html> 
<head> 
    ... 

    <script type='text/javascript' src='/path/to/firebug-lite.js'> 
    { 
     overrideConsole: true, 
     startInNewWindow: true, 
     startOpened: true, 
     enableTrace: true 
    } 
    </script> 

    ... 
</head> 
<body>...</body> 
</html> 

,并允许萤火虫是你应该添加下面的C#代码的新窗口中打开:

browser.Url = new Uri(
    "http://localhost/path/to/debug-version-of-interface.html", 
    System.UriKind.Absolute); 

browser.NewWindowCreated += new NewWindowCreatedEventHandler(
(sender, newWindowEventArgs) => 
{ 
    // create new form with single item - Firebug Lite window 
    debuggerForm = new DebuggerForm(newWindowEventArgs.WebKitBrowser); 
    debuggerForm.Show(); 
}); 

Firebug lite允许您访问页面和JavaScript控制台的HTML DOM。

快乐调试^)

+0

是另一个网页没有哪个不工作.. www.vax.co.uk –

+0

我怀疑较早的网页主题由网站管理员改变和表演导致webkitbrowsertest.exe而 www.vax.co.uk是了解问题的网站。 –

+0

看来cef sharp不会从网页生成图像.. 我想用cefsharp生成网页的快照。 –