TextRange对象pasteHTML方法的问题

bcboy 2002-06-17 11:15:41
pasteHTML只能粘贴闭合的html文本,如果指定的文本不闭合,它会自动加入一个
</tag>使之闭合,如:rng.pasteHTML("<b>test");
那么在插入后就会变成"<b>test</b>",我现在想自己控制,有没有办法可以使它插
入我指定的文本,不作闭合检查?

或都有没有其它的办法实现这个功能?
...全文
98 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
emu 2002-06-17
  • 打赏
  • 举报
回复
呵呵,我比较笨,都是把它取出来处理完了再放回去的。
bcboy 2002-06-17
  • 打赏
  • 举报
回复
我的意思是:

要在<b>aaaaaaaaaabbbaaaaaaaaaaaaaaa</b>中选择bbb后替换成<u>ccc</u>,
html文本变成:<b>aaaaaa</b><u>ccc</u><b>aaaaaaaaaa</b>

我用pasteHTML("</b><u>ccc</u><b>");但插入后就会变成:
<b>aaaaaa</b><u>ccc</u><b></b>aaaaaaaaaa</b>
emu 2002-06-17
  • 打赏
  • 举报
回复
唉,自己先做好串加法,把最后的结果paste进去就是了嘛。
emu 2002-06-17
  • 打赏
  • 举报
回复
你想作webedit那样子的在线编辑器?现在到处可以下了的嘛。
emu 2002-06-17
  • 打赏
  • 举报
回复
你的问题在于要把一个元素硬生生拆成三个,而我是创建了三个新的元素放进去后删调原来那一个。
到底你想干什么啊?
emu 2002-06-17
  • 打赏
  • 举报
回复
那试试我这个吧?

<body>
<b onclick = "test()">这样的效果能接受吗?(点击一下)</b>
<SCRIPT LANGUAGE="JavaScript">
function test()
{
var str = event.srcElement.outerHTML;
str = str.replace("(点击一下)","</B><U>(点击一下)</U><B>")
event.srcElement.insertAdjacentHTML('beforeBegin',str);
document.body.removeChild(event.srcElement)
}
</SCRIPT>
</body>
bcboy 2002-06-17
  • 打赏
  • 举报
回复
我本来也是想取出来再放回去,但我不知道确定选择的文本在串中的位置除了
indexOf外还有没有更精确的方法?因为串个可能会有好几个匹配,如果能确定
选择的文本在串中位置的话,取出来再放回去会是一个好办法。

87,996

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧