好的,有些人会知道我的意思并编辑我的问题,但他们做错了。
更好的解释:
您有一个内容可编辑的 div
文本 This is a Test String.
。
如果你现在在 execCommand('underline')
上使用 Test String
你会得到 This is a <u>Test String</u>
如果你现在在 execCommand('strikethrough')
上使用 is a Test
你会得到 This <s>is a <u>Test</u></s><u>String</u>
,这是正确的。
因此,在 HTML5 中 <u>
和 <s>
已过时。
对于第一个 execCommand
,您可以将 surroundContents()
与 <span style="text-decoration:underline;">
一起使用。如果您现在将 surroundContets()
用于第二个 execCommand
,您将收到 BAD_BOUNDARYPOINTS_ERR
。
我想要的是一个函数,它在这种情况下像 execCommand
一样工作,但是我可以用 witch HTML-Tag 定义函数,字符串将被包裹......(如果有任何重叠,它应该是智能的......)
最佳答案
surroundContents()
会有问题:如果选择包含多个块元素,例如 <div>
s 或 <p>
s,则包围的内容将被放置在一个新块中,使其脱离原始位置。为了克服这个问题,您可以在此处轻松调整我的答案:apply style to range of text with javascript in uiwebview
您需要执行以下操作:
intersectsNode
的Range
方法(参见MDC示例:https://developer.mozilla.org/en/DOM/range.intersectsNode) 关于javascript - 替代 execCommand ('underline' );,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3032894/