【问题标题】:WebPage Render Position Controller网页渲染位置控制器
【发布时间】:2012-09-20 19:27:08
【问题描述】:

第一个问题,但我真的很困惑。

我有一个运行良好的网页渲染。但是,我需要能够控制初始显示位置(几乎就像 HTML 中的 href #anchors),但不能访问网站内容。

据我所知,除了启用/禁用的 bool 之外,我无法访问滚动条。

我可以做些什么来强制向下滚动 20%,然后我可以创建一个表单以便稍后进行调整。

任何帮助都将不胜感激,尽管根据我的研究似乎不太可能。

我有常规的 windows WebBrowser Render

private System.Windows.Forms.WebBrowser m_webBrowser;

谢谢!

--这是针对 c# 独立应用程序的。不是基于 Web 的。

【问题讨论】:

    标签: c# webpage-rendering


    【解决方案1】:

    你尝试过使用 jquery 吗?

    我个人使用 jquery 中的 animate 方法滚动到我网页中的某些元素。

    例子:

     $('html, body').animate({scrollTop: $('#the-element-you-want-to-scroll-to).offset().top}, 1000);
    

    PS:对于最后一个参数,您可以控制滚动到目的地的时间,这为您提供了很好的效果。(以毫秒为单位)

    【讨论】:

    • 如果我可以访问站点页面,但它来自第 3 方站点,我将能够做到这一点,因此 c# 应用程序将需要呈现网页并“自动”向下滚动到某个位置..这是一个仅与 c# 相关的.. 遗憾的是我不能把心爱的 jquery 带进去! :(
    • 你可以尝试像往常一样渲染页面,但是这次在某处插入了 javascript/jquery(在一个事件上会很好),尽管我在 MVC 中使用它而不是 webforms。
    • 对不起,我应该解释得更好..这是针对 c# 独立应用程序的..不是基于 Web 的。
    • 对不起,还以为是浏览器中的网页渲染。
    • 有趣的是,这派上了用场!将其标记为更好的答案!
    【解决方案2】:

    我设法用一种奇怪的方法解决了它..

    我基本上是手动将一些 javascript 注入到渲染的 HTML 中。然后剩下的就很简单了。

    我用过这样的东西:

                string updatedSource = WebBrowser.DocumentText.Replace("Google", "Foogle");
                string extraSource =
                "<html><body>Script goes here <br/>" +
                "<div><p>BLA BLA BLA</p></div></body></html>";
    
    
                WebBrowser.DocumentText = extraSource + updatedSource;
    
                WebBrowser.Update(); 
    

    也许它会对某人有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-05-14
      • 1970-01-01
      • 1970-01-01
      • 2015-06-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-09
      相关资源
      最近更新 更多