我想让我的程序访问某个网页,想改动某些内容(改动网页的html源码)后再显示。比如,页面本来的是这样的:<html>
  <head>
    <title>姓名</title>
  </head>
  <body>
    <p>姓名</p>
    <p><input type="text" name="T1" size="20"></p>
    <p>恭喜你</p>
  </body>
</html>程序把它变成了这样再显示:
<html>
  <head>
    <title>姓名</title>
  </head>
  <body>
    <p>姓名</p>
    <p><input type="text" name="T1" size="20" value="张三"></p>
           <!--上面文本框里加了一个名字“张三”-->
    <p>恭喜发财</p>        <!--又改变了一行文字-->
    </body>
</html>
    如何做?
    我用CHTMLView导航到这个页面后,不知道下一步该如何做?如果用CHTML::GetDoucument()可取得文件接口但又不知道如何去修改里面的内容?如果用CHTMLView::GetSource()取得一个源码的CString,倒是可以改字串,但是改好后不知道如何把新字串付值回去。要是有个CHTMLView::SetSource()就好了!?
    怎么弄呀?各位帮帮我呀,急呀!!!

解决方案 »

  1.   

    CHtmlView::GetHtmlDocumentIHTMLDocument3::getElementById,IHTMLDocument3::getElementsByNameHRESULT IHTMLInputElement::get_value(BSTR *p);
    HRESULT IHTMLInputElement::put_value(BSTR v);
      

  2.   

    to onestation(新手) 
        按你的提示我大概明白“张三”这两个字怎么加进去了。但我还有很多疑问:
        1.我还不明白“恭喜发财”怎么修改?<p>标签是什么Element?IHTMLFontElement吗?
        2.我看了一下msdn,发现不是所有的Element接口都有get_value和put_value的操作,那些东西我想改怎么办?譬如一个超连接的连接地址改掉,或者想在<Script>...</Script>中增加一些脚本。
        3.如果我想增加一个东西,譬如说上面举例的html中增加一个按钮,又应该怎样做?我看了IHTMLDocument3的说明,好象没有一个类似AddElement()的函数呀?
      

  3.   

    把html当文本处理,然后再添加内容。
    之后用ie打开这个文本信息
      

  4.   

    to ugg(逸学堂(exuetang.net)) 
        当文本处理是不是要在本地存成一个html,然后再打开这个新的html?
        这样东西是可以加进去,但是会不会这个新html与原页面某些行为会不一样?譬如要运行的函数会不会运行不了?还有很多网页的超连接是写相对路径的。如果在本地存了一个,这些相对路径关系就被破坏了,许多连接和图片不是变的不可用了吗?
      

  5.   

    hr = body->put_innerHTML( bszNewHTML );
      

  6.   

    msdn.microsoft.com/workshop/browser/editing/mshtmleditor.asp