读书人

请问 pasteHTML的有关问题

发布时间: 2013-12-16 23:49:16 作者: rapoo

请教 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吗

读书人网 >JavaScript

热点推荐