用JS怎么实现一个把一个文本框中的选中内容加粗,效果基本上和编辑器的加粗效果相同。急需。

<divstyle="width:600px;height:200px;float:right"><iframestyle="width:600px;height:200... <div style="width:600px;height:200px;float:right">

<iframe style="width:600px;height:200px" id="result">

</iframe>
这是一个可以编辑的iframe

<script language="javascript">
function setVal() {
var str = document.getElementById('result').contentWindow.document.getSelection().toString();
document.getElementById('result').replace();
</script>

得到iframe中鼠标选中的内容。怎么把这个选中的内容加粗。没选的内容不变,据说可以用replace方法。但是我不知道怎么用。。求指导
展开
 我来答
马后雷鼓下扬州5058
推荐于2016-07-16 · TA获得超过4321个赞
知道小有建树答主
回答量:693
采纳率:33%
帮助的人:808万
展开全部

像 yanzilisan183 说的,你可以通过 style 让整个文本框内容加粗,但没有办法单独改变部分文字的样式。不过在你的例子中并没有出现 textarea,而是一个 iframe。


下面的代码只是个例子,可以实现将选择的文本加粗。但实际应用中考虑的问题还有很多。

IE 9, Firefox 19, Chrome 26 下测试都没有问题,Safari 会出现移位错误,Opera 直接不支持。


<script language="javascript">
window.onload = function() {
// iframe 窗口
var frameWin = document.getElementById('result').contentWindow;
// iframe 页面
var frameDoc = frameWin.document;
// 在 iframe 页面输出一些字符
frameDoc.body.innerHTML = 'Lorem ipsum dolor sit amet';
// 点击加粗
document.getElementById("bold").onclick = function() {
// 获取选择
var sel = frameDoc.getSelection();
// 获取选择的文字
var txt = sel.getRangeAt(0).extractContents().textContent;
// 选择范围
range = sel.getRangeAt(0);
// 删除被选择的内容
range.deleteContents();
// 创建新的元素 strong
var bold = frameWin.document.createElement("strong");
// 设置 strong 内容
bold.innerHTML = txt;
// 在被选择的位置添加加粗的元素
range.insertNode(bold);
};
};
</script>


<iframe style="width:600px; height:200px" id="result"></iframe>
<br /><input type="button" id="bold" value="加粗" />
缓步莫迟疑C
2013-04-18 · TA获得超过1.1万个赞
知道大有可为答主
回答量:6217
采纳率:73%
帮助的人:6512万
展开全部
文本框是不支持富格式的,你只能改变文本框中所有内容的显示样式,而不能只修改选中的部分.
编辑器用的即不是input type="text"也不是textarea,因为这两种控件都不支持富格式文本.
所以,没有代码能像你所想的只给文本框中选中的部分加粗.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式