如何通过IHTMLElement取得页面上<input type=text name=inputName1 id=inputName >name?name=inputName1 如何获取呢?

解决方案 »

  1.   

    http://search.csdn.net/expert/topic/50/5006/2002/11/4/1147282.htm
      

  2.   

    用getAttribute方法不可以吗?
    不行的话可以利用IHTMLElement的QueryInterface方法获取IHTMLInputElement指针。IHTMLInputElement里面有name的专用操作函数
      

  3.   

    //my function,you can consult it
    BOOL CSpyIEEx::LoadData(IHTMLDocument2 *pDoc2,UINT CryptAppID)
    {
    ////////////////////////////////////////////////////////////////
    APPDATA_PTR pAppdata=g_SecureEntry.Find(CryptAppID);
    if(pAppdata == NULL)
    return 0;
    if(pDoc2==NULL)
    return 0;
    IHTMLElementCollection *pColl=NULL;
    CComPtr<IHTMLElement> pElement;
    pDoc2->get_body(&pElement);
    if(pElement==NULL)
    return 0;
    {
    HRESULT hr=pDoc2->get_all(&pColl);
    if(SUCCEEDED(hr) && pColl!=NULL)
    {
    /////////////////////////////////////////
    long lcount = 0;
    pColl->get_length(&lcount);
    for(int i=0;i<lcount;i++)
    {
    CComVariant index;
    index.vt=VT_I4;
    index.intVal=i;
    CComPtr<IDispatch> disp;
    pColl->item(index,index,&disp);
    if(disp==NULL)
    hr=E_FAIL;
    else
    {
    //////////////////////////
    CComPtr<IHTMLInputTextElement> pPwdElement;
    hr=disp->QueryInterface(IID_IHTMLInputTextElement,
    (void**)&pPwdElement);
    if(SUCCEEDED(hr))
    {
    CComBSTR type,name;
    hr=pPwdElement->get_type(&type);
    if(SUCCEEDED(hr))
    {
    //set edit text 
    if(type==_T("text") || type ==_T("password"))
    {
    pPwdElement->get_name(&name);
    CString name1(name.m_str);
    for(ULONG j=0; j< pAppdata->size; j++)
    {
    //从文本中取得值
    CString strname,strvalue;
    CString Data(pAppdata->fieldptr[j].value);
    int nMid=Data.Find("\t");
    if(nMid != -1)
    {
    strname=Data.Left(nMid);
    strvalue=Data.Mid(nMid+1);
    }
    if(strname == name1)
    {
    CComBSTR value;
    value.Append(strvalue);
    hr=pPwdElement->put_value(value);
    }
    }
    }
    }
    }

    }

    }
    pColl->Release();
    }
    }
    pColl->Release();
    return 1;
    }
      

  4.   

    IHTMLInputTextElement get_name function