如何在IE插件的子域中获取IFrame的页面源

Posted

技术标签:

【中文标题】如何在IE插件的子域中获取IFrame的页面源【英文标题】:How to get page source of IFrame in a subdomain in IE addon 【发布时间】:2011-08-30 03:02:47 【问题描述】:

我正在使用 C# 中的 BandObjects 制作一个 IE 插件。我正在让我的网络浏览器导航到一个页面,假设它是 example.com。在该页面中有一个 IFrame,其 src 是 sub.example.com。因此,IFrame 指向一个子域。我能够获取 IFrame 的 URL,但无法获取页面源,当我在浏览器中查看时,它就在那里,但是通过代码我只能查看脚本,没有数据。 我正在粘贴 IFrame:

<iframe  src="http://sub.example.com/....php?style=web&amp;ext=1305964161&amp;hash=Ng1gwLG821-f" frameBorder="0"  scrolling="no"></iframe>

当我通过 Visual Studio 在 html 视图中查看此元素时,它会向我显示数据,即一封电子邮件,而文本视图会显示这一点。如果这个 iframe,我如何获得 HTML 视图或说页面源。 所以,总的来说,我想要这个 IFrame 中包含的数据,浏览器以某种方式执行它,但我怎么能用代码来做呢? 我访问了很多网站、论坛,但都无法正常工作。

【问题讨论】:

【参考方案1】:

在活动的浏览器中,代码就是代码,没有办法在活动窗口中查看框架的源代码,除非该框架当然大到可以右键单击并查看其自身的源代码。否则,您坚持将浏览器中呈现的内容作为您的来源,而每个说的 iframe 与说话无关。但是,将其视为您制作的附加组件,是否可以将 iframe 的 url 加载到各种隐藏窗口中,然后像获取活动页面一样获取代码?你可以在插件的任何地方使用 javascript 吗?我知道这是一个愚蠢的问题,但我从来没有为浏览器构建过插件。

如果您可以使用 javascript,但也许可以获取 iframe 名称/id/whatever 来识别它,然后在元素上使用 innerHTML,您可能能够捕获源代码。

【讨论】:

以上是关于如何在IE插件的子域中获取IFrame的页面源的主要内容,如果未能解决你的问题,请参考以下文章

如何从自定义源的请求中获取 Cloudfront 子域?

如何让iframe中页面全屏显示

如何让页面仅在使用 cloudflare 时接受来自我网站的 iframe 请求?

如何从 iframe 源获取 jstree 实例?

python selenium+ie 如何定位js生成的元素?

如何在 HTML 中单击按钮时更改 iframe 源?