【问题标题】:How to Act as Internet Explorer如何充当 Internet Explorer
【发布时间】:2016-07-11 11:31:16
【问题描述】:

我在 Windows 窗体应用程序中使用 cefsharp。不知何故,有些网站只需要在 Internet Explorer 上运行。我们如何设置 cefsharp (chromium) 像 Internet Explorer 一样?

我更改了请求标头以设置用户代理,例如“Mozilla/4.0(兼容;MSIE 6.0;Windows NT 5.0;Windows NT 7.0;InfoPath.3;.NET CLR 3.1.40767;Trident/6.0;en-IN) “但这并没有解决我的问题。该网站仍然知道浏览器不是 IE。

您能提供一个解决方案吗?

感谢您的进一步帮助

【问题讨论】:

  • 如果网站使用IE 特定功能,那么您实际上没有任何开箱即用的选项。您可以即时重写一些JS,尽管这将是非常特定于站点的。对于这些特定站点,您最好使用 WebBrowser 中的构建。
  • 其实网站真的不需要ie具体的功能。使用cefsharp,我需要在此站点上自动填写表格。我需要的是,该网站认为浏览器是 IE,而不是 chrome。登录网站后,我可以通过代码处理 ie 功能。网站地址是ergonet.ergoturkiye.com/portalWeb/welcome.jsf 当我尝试登录时
  • 您需要分析来源并确定它是如何检测浏览器的,一旦解决了就回来。
  • 这里是检查浏览器的代码 if (!document.all || !document.getElementById || !document.getElementsByTagName || !document.compatMode) {

标签: cefsharp


【解决方案1】:

我发现解决方案是伪造网站,例如在 frameloadstart 事件中向文档对象添加缺少的属性/功能。

        private void Browser_FrameLoadStart(object sender, FrameLoadStartEventArgs e)
    {
        browser.EvaluateScriptAsync(@"if(!document.all) { document.all = {};}  if(!document.compatMode) { document.compatMode = 'BackCompat'} if(!document.getElementsByTagName){ document.getElementsByTagName = function(){}; } ");
    }

【讨论】:

    猜你喜欢
    • 2015-02-13
    • 2016-04-08
    • 2013-12-01
    • 2011-10-08
    • 1970-01-01
    • 1970-01-01
    • 2011-03-08
    • 2010-10-29
    • 1970-01-01
    相关资源
    最近更新 更多