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等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)