本帖最后由 jianye112 于 2011-10-26 22:18:26 编辑

解决方案 »

  1.   

    你木的。非得我这样弄吗??ifm1 := EmbeddedWB1.OleObject.document.getElementsByTagName('iframe').item(0);
    ifm2 := EmbeddedWB1.OleObject.document.frames.item(0);
    showmessage(ifm1.tagName);//ifm1为IHTMLElement对象
    frameDisp := IDispatch(ifm2);//ifm2为IDispatch
    frameDisp.QueryInterface(IID_IHTMLWindow2, frameWin);
      

  2.   

    还存在一个问题就是iframe跟frame
    ifm1 := EmbeddedWB1.OleObject.document.getElementsByTagName('iframe').item(0);//区分iframe/frameifm2 := EmbeddedWB1.OleObject.document.frames.item(0);//不区分iframe/frame所以有些网页id就对应不上了
      

  3.   

    ifm1 := EmbeddedWB1.OleObject.document.getElementsByTagName('iframe').item(0);
    解决了。用上面这个然后取IWebBrowser2就能得到ifm2等对象了。
    先得ifm2然后通过ifm2取ifm1就没办法了啊。csdn咋啦。送分有人要不?分数没人稀罕了啊