我不知道兼容性如何? 下面一段代码IE里测试通过<br>假设已有样式:
<style>
.bb {font-size:9 pt; background-color: red}
</style>我只要在点击某个按钮之后将一段选中的文本的样式改为bb样式。
<input type=button value=meizz onclick="mm()"><SCRIPT LANGUAGE="JavaScript">
function mm()
{
var txt = document.selection.createRange().text;
if(txt=="") return;
var reg = new RegExp("("+ txt +")");
document.body.innerHTML = document.body.innerHTML.replace(reg, "<span class='bb'>$1</span>");
}
</SCRIPT>
<style>
.bb {font-size:9 pt; background-color: red}
</style>我只要在点击某个按钮之后将一段选中的文本的样式改为bb样式。
<input type=button value=meizz onclick="mm()"><SCRIPT LANGUAGE="JavaScript">
function mm()
{
var txt = document.selection.createRange().text;
if(txt=="") return;
var reg = new RegExp("("+ txt +")");
document.body.innerHTML = document.body.innerHTML.replace(reg, "<span class='bb'>$1</span>");
}
</SCRIPT>
比如在IE中有这么一串字符“asdfasdfasdf”这样选中中间或后面的“asdf”,只会改变第一个“asdf”的效果。这几天我一直在弄这个问题,由于E文不好,所以查资料时有许多还不明白。不过我觉得解决这个问题的话,应该要选中元素,并给它的CLASS属性赋值。不知是否这样?还请多指教
.bb {font-size:9 pt; background-color: red}
</style>我只要在点击某个按钮之后将一段选中的文本的样式改为bb样式。
<input type=button value=meizz onclick="mm()"><SCRIPT LANGUAGE="JavaScript">
function mm()
{
var r = document.selection.createRange()
var txt = r.text;
if(txt=="") return;
r.pasteHTML("<span class='bb'>" + txt + "</span>");
}
</SCRIPT>