chrome 下的怎么获得document

chrome 下的怎么获得document,第1张

documentgetElementById("theframe")contentDocumentdocumentElementinnerHTML

这个能得到正确的结果,不过由于chrome安全机制的原因,只能在上传到服务器,用网页浏览的方式才行。

使用AfxGetApp()->GetMainWnd()获取到的不是view的指针,而是main frame的指针。需要再调用main frame的GetActiveView()函数来获取当前活动的view的指针。

CMainFrame pMain=(CMainFrame )AfxGetApp()->GetMainWnd();

CXXXView pView=(CXXXView )pMain->GetActiveView();

CXXXDoc pDoc = (CXXXDoc )pView->GetDocument();

别忘了#include相应的main frame, view和doc的头文件。

1 对于frameset frame 的调用不清晰

2 对于documentall的用法不确切

3 你获取窗口应该像下面这样,然后调用里面的所有的东西

4 很少在父窗口做js的,都是在子窗口

5 for example

<head>

<meta >

在leftFrame或者mainFrame里取topFrame下的值为:

alert($(parentframes["topFrame"]document)find("#leftUserId")val());

如果正解,请点赞,比较细致的看完了你的代码,给出答案。

首先设置 frame2不可见 Frame2Visible = False 给按钮添加个命令 Frame1Visible = False Frame2Visible = True 设置Frame1不可见 Frame2可见 不知道你是不是这个意思

IHTMLDocument2有个方法:HRESULT get_frames(IHTMLFramesCollection2 p)

原来我以为通过该方法可以得到网页内嵌框架的IHTMLDocument2接口,但试过不行!

后来找到一种方法,即通过IOleContainer接口的EnumObjects方法。代码如下:

void EnumFrame( IHTMLDocment2 pHTML )

{

CComQIPtr<IOleContainer> spContainer( pHTML );

if( spContainer )

{

CComPtr<IEnumUnknown> spEnumerator;

// 注:参数OLECONTF_EMBEDDINGS

// 表示列举容器内的所有嵌入对象

HRESULT hr = spContainer->EnumObjects(

OLECONTF_EMBEDDINGS, &spEnumerator);

if( spEnumerator )

{

CComPtr<IUnknown> spUnk;

ULONG uFetched;

while (spEnumerator->Next(1, &spUnk, &uFetched) == S_OK)

{

CComQIPtr<IWebBrowser2, &IID_IWebBrowser2> spWB(spUnk);

if ( spWB )

{

ASSERT( spWB != m_spWebBrowser2 ) ;

CComPtr<IDispatch> spDocDisp;

hr = spWB->get_Document(&spDocDisp);

CComQIPtr<IHTMLDocument2> spHTML (spDocDisp) ;

if( spHTML )

{

EnumFrame( spHTML );

}}}}}

以上就是关于chrome 下的怎么获得document全部的内容,包括:chrome 下的怎么获得document、c++ 怎样从任意类获取CDocument类指针、js 获取 不到 <frameset> 内的 frame id等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9566929.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存