Questions tagged «webbrowser-control»

22
用更好的浏览器(例如Chrome)替换.NET WebBrowser控件?
有没有相对简单的方法将现代浏览器插入.NET应用程序? 据我了解,该WebBrowser控件是IE的包装器,这不会有什么问题,只不过它看起来像是IE的一个很老的版本,所有这些都涉及CSS破坏,潜在的安全风险(如果未对渲染引擎进行修补,那么我真的可以期望解决不计其数的缓冲区溢出问题吗?)以及其他问题。 我正在使用Visual Studio C#(速成版-在这里有什么区别吗?) 我想在我的应用程序中集成一个好的Web浏览器。在某些情况下,我只是使用它来处理用户注册过程,与我的网站的某些功能进行交互以及按此顺序进行其他操作,但是我想到的另一个应用程序将需要更多错误...控制。 我需要: 可以集成到我的应用程序窗口(而不是单独的窗口)中的浏览器 与任何现代浏览器一样,对CSS,js和其他Web技术的良好支持 基本的浏览器功能,例如“导航”,“后退”,“重新加载” ... 自由访问页面代码和输出。 我一直在考虑Chrome,因为它获得了BSD许可,但我对IE的最新版本同样满意。 我想让事情尽可能简单。最好的办法是修补现有的WebBrowser控件,该控件已经完成了我所需控件的70%,但我认为这是不可能的。 我已经找到了Mozilla的activeX控件(http://www.iol.ie/~locka/mozilla/control.htm),但是它看起来像是一个旧版本,因此不一定是改进。 我愿意接受建议

8
使用WPF / C#嵌入Chromium而不是IE WebBrowser控件的选项
基于Internet Explorer的WPF WebBrowser控件遭受一些键盘和焦点问题以及内存泄漏问题的困扰。作为这些问题的替代解决方案,我们正在考虑基于HTML编辑的WPF / C#项目中用于托管Chromium的可用选项,而不是WebBrowser控件。以前在这里已经问过类似的问题。我已经阅读了答案并进行了自己的研究,但我希望从实际在生产质量项目中使用以下任何选项的人那里获得更多反馈: Awesomium和Awesomium.NET 看起来非常合适,但是我不喜欢该项目不是开源的,并且不容易获得完整的源。同样,这对于我们的项目可能是一个过大的杀伤力,因为屏幕外渲染并不是我们真正依赖的东西。 用于CEF的Chromium嵌入式框架(CEF)和.NET绑定 这可能是当前可用的最佳选择。该项目似乎正在运行,目前正在与Chrome v27同步。CEF3使用Chrome多进程架构。看起来Adobe也在认可它。 Google的Chrome内嵌框架 虽然它的最初目的是成为IE和Firefox的HTML5插件,但实际上它也可以作为独立的ActiveX控件使用,因此我可以将其包装以与WPF一起使用。它提供了足够的API与内部网页(onmessage, addEventListener/removeEventListener, postMessage)进行交互。我知道Google将会停止使用 Chrome Frame,但是我认为来源仍将保留在Chromium存储库中。我们不难用最新的Chromium代码对其进行更新,并且我们将对此进行完全控制。 WebKit .NET包装器 并非完全基于Chromium,也不使用V8引擎,因此它并不是真正的选择。 还有其他我可能会忽略的选择吗? 如果有人将他/他的经验分享给现实生活中,具有生产质量的WPF项目,我将非常感激。您是否有任何集成,许可或部署方面的内容?谢谢。 [编辑] 我也要感谢artlung通过提供慷慨的赏金来推动这个问题的发展。

11
在HTML元素上禁用拖放功能?
我正在开发一个Web应用程序,正在尝试为其提供功能齐全的窗口系统。目前进展顺利,我只遇到一个小问题。有时,当我去拖动应用程序的一部分时(通常是窗口的角落div,这应该触发调整大小的操作),Web浏览器变得很聪明,并认为我的意思是拖放东西。最终结果是,当浏览器进行拖放操作时,我的动作被暂停。 有没有简单的方法可以禁用浏览器的拖放功能?理想情况下,我希望能够在用户单击某些元素时将其关闭,但是要重新启用它,以便用户仍可以在我的Windows内容上使用其浏览器的正常功能。我正在使用jQuery,尽管在浏览文档时找不到它,但是如果您知道一个纯jQuery解决方案,那将是很好的选择。 简而言之:我需要在用户按下鼠标按钮时禁用浏览器文本选择和拖放功能,并在用户释放鼠标时恢复该功能。




15
如何在WebBrowser控件中注入Javascript?
我已经试过了: string newScript = textBox1.Text; HtmlElement head = browserCtrl.Document.GetElementsByTagName("head")[0]; HtmlElement scriptEl = browserCtrl.Document.CreateElement("script"); lblStatus.Text = scriptEl.GetType().ToString(); scriptEl.SetAttribute("type", "text/javascript"); head.AppendChild(scriptEl); scriptEl.InnerHtml = "function sayHello() { alert('hello') }"; scriptEl.InnerHtml和scriptEl.InnerText都给出错误: System.NotSupportedException: Property is not supported on this type of HtmlElement. at System.Windows.Forms.HtmlElement.set_InnerHtml(String value) at SForceApp.Form1.button1_Click(Object sender, EventArgs e) in d:\jsight\installs\SForceApp\SForceApp\Form1.cs:line 31 at System.Windows.Forms.Control.OnClick(EventArgs …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.