【问题标题】:Accessing frame in IE: results from translate.google.com在 IE 中访问框架:来自 translate.google.com 的结果
【发布时间】:2018-12-04 10:24:22
【问题描述】:

我知道谷歌有一个 API 可以做到这一点。但是,总是有一个但是,......我想访问每个普通用户都可以使用的普通翻译服务,它有一个屏幕、一个浏览器和一个键盘。让我们说这更多的是学术兴趣。也因为我在其他应用程序中遇到了同样的问题。 好的,我的程序非常,但是非常简单。

 $objIE = New-Object -Com Internetexplorer.Application
 $url = "https://translate.google.com/#view=home&op=translate&sl=it&tl=en&text=questo%20testo%20voglio%20tradurre"
 $objIE.Navigate($url)

现在我有了翻译,在这种情况下是从意大利语到英语。翻译后的文本在一个元素中

 <span class="tlid-translation translation"><span title="" class="">I want to translate this text</span></span>

我如何得到这个文本? 这应该很容易,因为我只需要在 DOM 中导航。但是如何?我在框架构造上失败了。尽管有可用的 API,我还是发布了这个,因为我更感兴趣的是框架内的导航。有了这个,我们有一个可供所有人测试的示例。

感谢每一个提示,

【问题讨论】:

  • 由于同源策略,您无法从其他域访问 iframe。
  • 我不明白,就像浏览器可以读取数据一样,我也应该通过API读取它,还是我错了?我没有使用 javascript,我正在从浏览器站点访问 DOM

标签: html internet-explorer google-translate frames


【解决方案1】:

好的,我正处于解决方案的开始阶段。 $objIE.Document.body 包含所需的翻译。我可以将其保存在文本中并简单地解析此文本。 所需的翻译在以下字符串中 翻译文本

翻译文本,正如您可能猜到的那样,这似乎工作得很好。 非常简单,但...也非常快。

【讨论】:

  • 来自您的上一篇文章。我可以看到您已经找到了解决问题的方法。我建议您在 24 小时后将其标记为该线程的答案,这可能会在将来帮助其他社区成员解决类似问题。感谢您的理解。
猜你喜欢
  • 2010-10-02
  • 1970-01-01
  • 2017-04-03
  • 2015-04-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-30
  • 2011-05-22
相关资源
最近更新 更多