【发布时间】:2018-07-04 00:10:44
【问题描述】:
对于我的一个 Chrome 扩展项目,我通过动态填充其 src 属性,在当前网页的 <iframe> 标记中获取了另一个网页的 HTML 内容。现在,我想从<iframe> 标记中抓取一些值。但是 jQuery 总是将这个 <iframe> 标记显示为空。我使用的原因是在我开始抓取之前,我希望在获取的页面中执行一些 JavaScript 文件。我也尝试设置等待计时器,但 jQuery 总是将 <iframe> 标记显示为空(尽管设置了 src 属性)。
经过调查,我发现<iframe> 里面有一个奇怪的#document 值,后面是普通的HTML 标签。我想知道这是否是 jQuery 无法通过 <iframe> 标记内的 DOM 层次结构递归的原因。
请参阅下面所需<iframe> 标记的“检查”视图的屏幕截图。
此外,存在<iframe> 标签的主网页与新获取的页面网址位于同一网站上(尽管子域不同)。而且我在 Chrome 中没有收到任何访问权限警告,所以我不怀疑这是一个跨域问题。
编辑:
即使在等待 10 秒后:
console.log($("#insertHere").text());
返回空。而且,
console.log($("#insertHere").parent().html());
返回:<iframe id="insertHere" src="/courses/intro..." style="width:0;height:0;border:0; border:none;"></iframe>
【问题讨论】:
标签: javascript jquery html iframe web-scraping