【问题标题】:get current visible part of page displayed in IE获取在 IE 中显示的页面的当前可见部分
【发布时间】:2011-10-27 05:34:29
【问题描述】:

我正在开发屏幕阅读器,直到现在我成功地在 IE 中获取页面的整个文本。但我不知道如何获取页面的当前可见部分或获取 IE 中光标下的当前段落。

我并不是要给我代码,只是想推荐我,如果有办法使用 API 或类似的东西来做到这一点。

根据我的发现,我认为使用辅助功能 API 是不可行的。

我非常感谢任何想法和帮助。

【问题讨论】:

    标签: c#


    【解决方案1】:

    如果您的应用程序是 WinForms 应用程序,您可能需要考虑使用浏览器控件。我仍然有点不清楚你在寻找什么,但我认为浏览器控件是你需要的。

    这里有一个类似的问题,可能会为您指明正确的方向:

    C# WebBrowser control -- Get Document Elements After AJAX?

    【讨论】:

      【解决方案2】:

      要在光标移到段落上时访问段落的内容,您可以使用 javascript:

      var oP = document.body.getElementsByTagName('p');
      for (var i = 0; i < oP.length; i++) {
          oP[i].onmouseover = function() {
              var content = oP[i].innerHTML;
      
              // Do whatever you want with content.
          };
      }
      

      当光标移动到一个段落上时,这将触发 onMouseOver 事件,然后您将能够阅读它的内容。

      【讨论】:

      • 特别感谢 snipes83,但你的代码是用 javascript 编写的。没关系,我可以将它用作 IE 或 FF 的扩展,但我喜欢远离扩展。我想从我在 c# 中的外部应用程序中获取段落或至少页面的可见部分。有什么想法吗?
      • 在 IE 或 FF 中 JavaScript 有什么问题?
      • @James Johnson:抱歉有点不清楚。在我的屏幕阅读器(即外部应用程序)中,我想获取 IE 运行实例的段落。它不能使用 javascript 来完成,因为我的应用程序是在 c# 中的。我已经使用“RegisterWindowMessage”和相关方法获取了整个文本,但是使用这些方法无法完成获取段落。我错了吗?
      • @Bella:这是一个 WinForms 应用程序? C# 可以与 web 和 windows 应用程序一起使用,因此为了将来参考,请指定 WinForms、WebForms、MVC 等。
      • 非常抱歉这个错误(我目前正忙于这个项目,并没有意识到它),是的,它是一个 Windows 应用程序。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多