先看一段简单代码
<!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吗