100--500分!!!关于webBrowser/IFrame问题

恶猫 2008-10-07 01:36:01
我是用C#开发WINFORM。
里面有功能需要用webBrowser控件显示网页,但是当网页中有iframe的时候。只能循环出所有iframe的url
不能得到各个iframe的源码。。。。更不能在iframe中插入需要的内容。

谁能解决?
(注意,要可以跨域读取及修改插入内容)。

可以的留下QQ。
解决完另开贴送400分!很急。
有源码最好,调试成功的更好。
...全文
1088 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
牛十二 2010-05-17
  • 打赏
  • 举报
回复
这个很容易,自己调试一下就可以看出来了
meteorpacs1 2010-04-23
  • 打赏
  • 举报
回复
这个是c#代码?
dddlincsdn 2008-10-07
  • 打赏
  • 举报
回复
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 )
{
....
代码已发给你,记得结贴
freemeditator 2008-10-07
  • 打赏
  • 举报
回复
等待最佳答案
恶猫 2008-10-07
  • 打赏
  • 举报
回复
啥意思?

谁能给个可以用的代码出来
gxtiou 2008-10-07
  • 打赏
  • 举报
回复

你重新new一个Document复制你的iframe里的Document试试
恶猫 2008-10-07
  • 打赏
  • 举报
回复
连遍历都不行。。。。

恶猫 2008-10-07
  • 打赏
  • 举报
回复
拒绝访问。 (异常来自 HRESULT:0x80070005 (E_ACCESSDENIED))
恶猫 2008-10-07
  • 打赏
  • 举报
回复
5555555555555555555555555555
恶猫 2008-10-07
  • 打赏
  • 举报
回复
你这个好像只能是本域内的吧。

能跨域吗?????
ZengHD 2008-10-07
  • 打赏
  • 举报
回复
        
在各个iframe里插入新控件

private void Form1_Load(object sender, EventArgs e)
{
webBrowser1.Navigate("file:///C:/1.htm");
while (webBrowser1.IsBusy) Application.DoEvents();
}

private void button1_Click(object sender, EventArgs e)
{
int iCount = webBrowser1.Document.Window.Frames.Count;
for (int i = 0; i < iCount; i++)
{
HtmlElement ee = webBrowser1.Document.CreateElement("test");
ee.InnerHtml = "<input type='type' value='test'>";
webBrowser1.Document.Window.Frames[i].Document.Body.InsertAdjacentElement(HtmlElementInsertionOrientation.AfterBegin, ee);
}
}
ZengHD 2008-10-07
  • 打赏
  • 举报
回复
        
获取各个iframe的源代码

private void Form1_Load(object sender, EventArgs e)
{
webBrowser1.Navigate("file:///C:/1.htm");
while (webBrowser1.IsBusy) Application.DoEvents();
}

private void button1_Click(object sender, EventArgs e)
{
int iCount = webBrowser1.Document.Window.Frames.Count;
for (int i = 0; i < iCount; i++)
{
MessageBox.Show( webBrowser1.Document.Window.Frames[i].Document.Body.InnerHtml);
}
}

110,545

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧