日期:2014-05-16  浏览次数:20480 次

请教 pasteHTML的问题
先看一段简单代码

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>test pasteHTML</title>
<meta content="text/html; charset=UTF-8" />
<script>
function test(){
var sel = document.selection;

   if (sel!=null) {
    var rng = sel.createRange();

    if (rng!=null) {
     rng.pasteHTML("<p><strong>Selection has been REPLACED.</strong></p>");
    }
   }
}

</script>
</head>
<body>
<textarea id="test" rows="20" cols="100"></textarea>
<br />
<input type="button" value="replace" onclick="test();" />
<script>
var sel = document.selection;
//var sel = document.getElementById("test").document.selection;

   if (sel!=null) {
    var rng = sel.createRange();
alert(rng.text);
    if (rng!=null) {
     document.getElementById("test").focus();
     rng.pasteHTML("<p><strong>Selection has been replaced.</strong></p>");
    }
   }
</script>
</body>
</html>

当第一次加载页面时,会在页面顶部显示“Selection has been replaced.”。但是当我点击replace按钮时,就报错了,说未指明错误。不知道为什么,知情人士不吝赐教,共同学习。
我想实现的效果是选中在textarea中的内容,点击replace按钮时,就报错。达不到想要的效果。
JavaScript pasteHTML textArea

------解决方案--------------------
估计是textarea,和input这样的标签,是不支持这样做的。它们不能包含其他的标签的,你试试直接写在里面,标签都是直接以标签的形式显示的,不会有效果的。

你可以把textarea改成div,就行了。


------解决方案--------------------
这个 你点下去后  selection还是原来那个地方的selection吗