在 vba 中获取 iframe 的 Contentwindow - 访问被拒绝/权限被拒绝

Posted

技术标签:

【中文标题】在 vba 中获取 iframe 的 Contentwindow - 访问被拒绝/权限被拒绝【英文标题】:Get Contentwindow of iframe in vba - Access Denied / Permission Denied 【发布时间】:2014-06-20 00:17:28 【问题描述】:

我遇到了使用 vba 访问 iframe 的内容窗口的问题。使用 iframe.domain = document.domain 检查时,框架位于同一域中。以下是我到目前为止所尝试的。我阅读了所有网站,但找不到解决方法。任何其他简化同域/跨域消息传递的方法都是非常值得赞赏的。

Dim ie As New InternetExplorer Dim objshell, objshellwindows Dim doc As MShtml.HTMLDocument Dim doc1 As MSHTML.IHTMLDocument Dim iframe As MSHTML.HTMLIFrame Set objshell = CreateObject("Shell.Application") Set objshellwindows = objshell.Windows For Each ie In objshellwindows If InStr(ie.LocationURL, "http://www.example.com/examples/camera/html/index.html") > 0 Then Set doc = ie.document For Each iframe In doc.getElementsByTagName("IFRAME") Set doc1 = iframe.contentWindow.document '---Access Denied/ Permission Denied Error Next End If Next

【问题讨论】:

【参考方案1】:

由于same-origin policy,有时您将无法访问这样的 IFrame。 您可以使用 RegEx 或更好的方法从响应文本中获取数据 - 使用 IFrame 的 src 属性中的链接发送请求并直接获取其内容。

【讨论】:

以上是关于在 vba 中获取 iframe 的 Contentwindow - 访问被拒绝/权限被拒绝的主要内容,如果未能解决你的问题,请参考以下文章

如何用javascript 跨域获取iframe子页面的元素信息

使用VBA excel在iFrame中单击下拉选项

Selenium VBA Excel - 单击 iframe 中的链接时出现问题

appium如何获取conten-desc内容文本

我也想获取邮件 Gmail API 附带的附件

尝试重新加载嵌入式 iframe 时出现 CORS 错误