gpt4 book ai didi

c# - IHTMLTxtRange.pasteHTML 不会替换旧的 HTML

转载 作者:行者123 更新时间:2023-11-30 17:24:13 25 4
gpt4 key购买 nike

我正在使用 Microsoft 的 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);

当我尝试更改 header 时,尽管 MSDN 提到了 pasteHTML,但旧 header 没有被替换:

Pastes HTML text into the given text range, replacing any previous text and HTML elements in the range.

这意味着如果我的 HTML 是

<H1>foo</H1>

第一次赋值后,得到

<H1>
<H2>asdasd</H2></H1>

第二个之后。

我做错了什么?我错过了什么吗?

最佳答案

你试过把最后一行改成

range.pasteHTML(elem.innerHTML);

? 我认为 outerHTML 会包含原始的 h1 标签,然后您会粘贴

<H1><H2>asdasd</H2></H1>   

结束

<H1>foo</H1>

关于c# - IHTMLTxtRange.pasteHTML 不会替换旧的 HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1328378/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com