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

时间:2014-05-03 10:02:36

标签: vba excel-vba iframe excel

我遇到了使用vba访问iframe的contentwindow的问题。使用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 个答案:

答案 0 :(得分:0)

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