我想首先指出,我知道这可能由于跨域限制而失败 - 只是想真正确认一下。
我有一个用 javascript 打开的窗口。然后,我使用 Ajax 请求来拉取站点的内容并将其(包括在基本 href 链接中以强制其相对工作)回显到新窗口中。
我的想法是我可以抓取 JS 呈现的 HTML 以查看该网站是否真的在运行我们的横幅(我们怀疑它们不是!)
我用这个打开窗口:
msaScrape.msaWin = window.open ('null.php', 'msa_weed', "scrollbars=yes,toolbar=no,status=no,width=1000,height=1000");
这将使用目标页面的内容加载新窗口,并正确加载和呈现 JS 触发的内容(横幅是后面的位)。
我已经尝试过 msaScrape.msaWin.document.body、msaScrape.msaWin.document.body.innerHTML 和许多其他组合,但没有一个可以让我返回完全呈现的 HTML。
当我在 Ajax 请求的原始缓冲区上运行测试时,我可以很好地检测到嵌入的字符串 - 但由于横幅是通过 JS 加载的,所以我需要先将它们加载到 DOM 中,然后才能在 HTML 中搜索横幅 ID。
我正在尝试做的事情是可能的,还是我正在尝试做一些无法完成的事情?我觉得很奇怪我可以写入这个弹出窗口,并且我可以扫描(并在其中找到匹配项)原始的、未渲染的缓冲区。一旦我允许弹出页面呈现它掉下来的 HTML,我就无法从源头获取。
如果需要,我可以发布我正在尝试进行抓取和匹配的整个(小)JS 位 - 只需与客户核实他们是否介意我这样做(它是针对私人客户并且不想让他们不安!)