• IHTMLTxtRange.pasteHTML不会取代旧的HTML

  • 本文关于 c#,mshtml
  • CodeGo.net > IHTMLTxtRange.pasteHTML不会取代旧的HTML
  •  

    IHTMLTxtRange.pasteHTML不会取代旧的HTML



    c# mshtml
    我正在写一个简单的HTML所见即所得微软的特点之一,应选定文本中选择一个报头类型(如H1,H2,H3)。首先是用下面的代码没有问题:
    // *doc* is my IHTMLDocument
    // *tag* contains the header tag
    IHTMLTxtRange range = (IHTMLTxtRange)doc.selection.createRange()
    string rangeText = range.text;
    IHTMLElement elem = doc.createElement(tag)
    elem.innerHTML = rangeText;
    range.pasteHTML(elem.outerHTML);
    
    当我尝试更改标题,旧的不会被取代,虽然MSDN说,大约pasteHTML: 将HTML文本粘贴到给定的文本 范围,更换任何文字和 HTML的范围。 如果我的HTML是
    <H1>foo</H1>
    
    它得到后的优先
    <H1>
    <H2>asdasd</H2></H1>
    
    之后的第二。 我究竟做错了什么?我错过
    本文地址 :CodeGo.net/1482653/
    -------------------------------------------------------------------------------------------------------------------------
    1.清除选择将做到这一点:
    IHTMLTxtRange range = (IHTMLTxtRange)doc.selection.createRange();
    string rangeText = range.text; 
    doc.selection.clear();
    IHTMLElement elem = doc.createElement(tag); 
    elem.innerHTML = rangeText; 
    range.pasteHTML(elem.outerHTML); 
    

    2. 你试图改变最后一行
    range.pasteHTML(elem.innerHTML);
    
    ? 我认为的outerHTML将包括原来的h1标签,然后你就粘贴
    <H1><H2>asdasd</H2></H1> 
    
    OVER
    <H1>foo</H1>
    

    本文标题 :IHTMLTxtRange.pasteHTML不会取代旧的HTML
    本文地址 :CodeGo.net/1482653/
    1. 教一类型转换
    2. 要形成一个字符串与给定的十六进制代码值
    3. c++中long*在C#中用什么类型1
    4. 设置数据网格视图beckground透明
    5. C# winform 如何将panel上动态创建的多个button重新排列
    6. 在DataSet中DataRelation的目的是什么?
    7. TcpClient连续发送数据以后报错:通常每个套接字地址(协议/网络地址/端口)只允许使用一次
    8. 正在与IContainers一个更好的想法的ObjectFactory直接(StructureMap的)?
    9. ref int 的应用 - -!
    10. 过滤每列一个DataGridView与过滤器上面列可见

     
    

    Copyright © 2017 CodeGo.net
    http://codego.net/xinwen/ 足球比分网 足球比分 医药招商网 邵阳县新闻