首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

webbrowser 怎么获取iframe框架中的源代码

2013-07-08 
webbrowser 如何获取iframe框架中的源代码iframe打开的网页是动态的 期待高手大驾光临!!!框架浏览器源代码

webbrowser 如何获取iframe框架中的源代码
iframe打开的网页是动态的 期待高手大驾光临!!! 框架 浏览器 源代码
[解决办法]
  C#实现MyIInternetSecurityManager返回同一个getsecurityid即可访问框架页内容以及获取源码扥等。
  c++直接重写MyIInternetSecurityManager::GetSecurityId
STDMETHODIMP MyIInternetSecurityManager::GetSecurityId(LPCWSTR pwszUrl, BYTE *pbSecurityId, DWORD *pcbSecurityId, DWORD_PTR dwReserved)

{

    #define MY_SECURITY_DOMAIN "file:" 

    int cbSecurityDomain = strlen(MY_SECURITY_DOMAIN);


    if (*pcbSecurityId >= MAX_SIZE_SECURITY_ID)

    {

        memset(pbSecurityId, 0, *pcbSecurityId);

        strcpy((char*)pbSecurityId, MY_SECURITY_DOMAIN);


        // Last 4 bytes are <URLZONE> and then 3 zeros.

        pbSecurityId[ cbSecurityDomain + 1 ] = URLZONE_LOCAL_MACHINE;

        pbSecurityId[ cbSecurityDomain + 2 ] = 0;

        pbSecurityId[ cbSecurityDomain + 3 ] = 0;

        pbSecurityId[ cbSecurityDomain + 4 ] = 0;


        *pcbSecurityId = (DWORD) cbSecurityDomain + 4; // plus the 4 bytes from above.

    }


    return S_OK;

}
  VB引用internet control和html object libray的支持,即可实现框架内部访问。
    Private Function getFrames(ByVal WB As WebBrowser) As Object
                    Dim pContainer As olelib.IOleContainer
                    Dim pEnumerator As olelib.IEnumUnknown


                    Dim pUnk As olelib.IUnknown
                    Dim pBrowser As SHDocVwCtl.WebBrowser_V1
     
                    Set pContainer = WB.Object.Document
                    If pContainer.EnumObjects(OLECONTF_EMBEDDINGS, pEnumerator) = 0 Then
                    Set pContainer = Nothing
                    Do While pEnumerator.Next(1, pUnk) = 0
                    Set pBrowser = pUnk
                    If Err.Number = 0 Then
                    'Print "Frame: " & pBrowser.LocationURL
                    If pBrowser.LocationURL = "http://www.baidu.com/" Then '可以在这里加条件判断得到指定的frame,基本可以根据url或者innerHTML中的某个关键字符
                   Set getFrames = pBrowser
                   Exit Function
            End If
          End If
       Loop
       Set pEnumerator = Nothing
    End If
End Function
  

热点排行