【发布时间】:2016-05-29 11:37:27
【问题描述】:
目前我们正在尝试访问(使用 javascript)动态生成的 html 元素的 HTML(例如,获取图像的 url)。如果仅使用 javascript 生成 html 元素 - 它们没有问题。只需通过访问 DOM 元素使用 javascript 提取图像 url。但是现在我们遇到了 iframe 的问题。
目前的情况是这样的:
- 我们包含外部脚本文件(www.test.com/script.js) 以在我们的网站上创建图库
- script.js 在我们的网站中生成一个新的 iframe (document.write('iframe code here'));参考 www.test.com/iframe.html)
- iframe.html 再次包含 javascript 代码以通过创建多个 dom 元素(div、imgs、a、p、...)来生成图库
现在我们需要读取这些图像的 src 属性。用浏览器的调试工具,是没有问题的。没有iframe,也没有问题。但是对于 iframe,由于浏览器的跨域策略,我们无法使用 javascript 访问 iframe.html 的 html。
一种可能的解决方案是尝试用javascript获取iframe标签的src,调用服务端脚本获取src-url的html内容,并通过eval( )-再次在客户端上运行。
我希望你有其他更好的方法来解决这个问题。
【问题讨论】:
-
唯一不涉及魔法(不适用于所有浏览器并且每隔一周中断的东西)的唯一方法是在服务器上使用无头浏览器。例如,尝试 phantomjs。这就像做一个 cURL 请求,但也像浏览器一样执行所有 JS,这样你就得到了“最终”的 HTML。
-
您是否有权访问您尝试从中获取内容的服务器?
-
Sergiu Paraschiv,我认为这是最好的方法,也是我正在寻找的解决方案!
标签: javascript php html