87,903
社区成员
发帖
与我相关
我的任务
分享
一段对刚才选择的html做了文本操作后,就会导致插入的图片跑到顶部
原因是innerHMTL赋值后,原来的html内容发生变化导致document.selection.createRange()不能获取
鼠标选择的内容。所以图片才跑到最前面了
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>无标题页</title>
<script>
function ShowDiv()
{
var span = document.getElementById("s");
var imgStr = "<IMG src=\"http://avatar.profile.csdn.net/D/7/3/2_hahanan1987.jpg\" tag=\"true\">";
var txt = document.selection.createRange();
var temp = "!#flag!" +txt.text+imgStr+"!flag#!";
txt.pasteHTML(temp);
var content = span.innerHTML;
var ary = content.split(temp);
content = ary[0].replace(imgStr, "") + temp + ary[1].replace(imgStr, "");
span.innerHTML = content.replace("!#flag!", "").replace("!flag#!", "");
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<span onmouseup="ShowDiv();" id="s">快使用双节棍 狠狠哈嘿 快使用双节棍狠狠哈嘿<br /> 习武之人切记 仁者无敌 是谁在练太极风声水起<br />快使用双节棍 狠狠哈嘿 快使用双节棍狠狠哈嘿<br /> 习武之人切记 仁者无敌 是谁在练太极风声水起</span>
<br /><br />
<span>sdasdadasdasdasdasdads</span>
</div>
</form>
</body>
</html>