如果只需要完成简单的功能。而不愿使用庞大的插件,不妨自己制作简单的在线文本编辑器
首先,制作之前,要明白几个概念
1。 获得鼠标选择的值:ie和ff下略有不同
IE:
var sel = document.selection.createRange();
alert(sel.text );
FF:获得光标选择域的起始位置,终止位置,调用 subString(indexNum,endNum) 方法,来获得所选择的文本
var element = document.getElementsByTagName(textarea)[0];
var indexNum = element.selectionStart; //光标开始位置
var endNum = element.selectionEnd;//光标结束位置
var selText = element.value.substring(indexNum,endNum);//调用subString方法,获得选择文本的值
alert('indexNum='+indexNum+"====endNum="+endNum+"===selText="+selText);
由于document.selection在ff下不支持,所有利用这个属性来判断浏览器,以上ie和ff下的代码进行合并,最后的代码
function getSelText() {
var selText ;
//ie
if(document.selection!=null){
var sel = document.selection.createRange();
selText=sel.text;
}
//ff
else{
var element = document.getElementsByTagName(textarea)[0];
var indexNum = element.selectionStart; //光标开始位置
var endNum = element.selectionEnd;//光标结束位置
selText = element.value.substring(indexNum,endNum);
}
return selText;
}
2.关于textarea下的文字换行
html文本中,默认回车换行字符为 \n.调用replace方法,将\n替换为html标记 <br/>
/**获得textarea中的内容(代码格式)*/
function getContext(){
var element = document.getElementsByTagName(textarea)[0];
var context=element.value.replace(/(\n)/g,"<br/>");
return context;
}
题外话:
如果用户输入时不使用回车换行,textarea会自动换行,在输入时看起来是换行了的。但是进入后台存储的时候,由于没有换行符<br/>,将输入的内容在从后台提取出来的时候,显示就回出现混乱。这个可以使用css进行控制换行控制
<div style="white-space: normal;width: 100%;word-break:break-all; overflow:auto;">
这种代码在ie下。超出指定宽度,自动换行,ff下位超出指定宽度后,以滚动条显示
3。关于textarea在宽度在ie和ff下宽度差异问题:
这里不具体讨论,je或网上有很多这样的文章,这里的解决方案是使用 style样式height=?px和width=?px属性进行定义,而不是使用textarea的属性cols,rows
下面是一个初始化textarea样式的方法
/**
*定制textarea的样式
* json字符串style={height:num,width:num}
*例 : var style={height:120,width:120}; this.setStyle(style);
*/
function setStyle(style){
var element = document.getElementsByTagName(textarea)[0];
element.style.height=style.height;
element.style.width=style.width;
}
分享到:
相关推荐
问题解决1: 一开始是提交数据的时候格式是AAA<BR>BBB,但是这是显示换行,其实在TextArea里面并不是真正按行存放的,因为这个时候再提交给另外一个TextArea的时候就是显示AAABBB,而不是换行显示了,因此仅仅是显示...
<textarea id="textarea"></textarea> <script> var str = document.getElementById("textarea").value; str = str.replace(/\r\n/g, "<br>"); document.getElementById("textarea").value = str; </script> ```...
它创建一个临时的`<textarea>`元素,将`<pre>`内容放入其中,选中该内容,然后调用`document.execCommand("Copy")`命令复制文本。复制成功后,更新按钮的文字提示,并在一段时间后恢复原始文字。 ```javascript $...
"></textarea></td> </tr> <tr> <td></td> <td>您还可以输入:<input name="remLen" type="text" value="65" size="5" readonly="readonly" />个字符,每条短信最大允许输入 <strong>65</strong> 个字符</td> </...
<tr><td>备注:</td><td><s:textarea name="xs.bz" label="备注"></s:textarea></td></tr> <tr><td><s:submit value="添加"></s:submit></td><td><s:reset value="重置"></s:reset></td></tr> </table> </s:form...
在这个例子中,我们创建了一个textarea和一个用于显示字数的`<p>`元素。通过`addEventListener`方法添加了一个事件监听器,每当textarea内容改变时,都会更新字数计数并显示在页面上。 如果要限制最大字数,可以在...
<textarea name="userInput"></textarea> <input type="submit" value="提交"> </form> </body> </html> ``` 在处理表单的JSP页面(如`process.jsp`),我们可以这样获取TextArea的值: ```jsp <%@ page ...
9. **表单**:HTML表单元素如`<form>`、`<input>`、`<textarea>`、`<select>`和`<button>`用于用户输入和交互。 10. **响应式设计**:通过使用媒体查询(`@media`)和Flexbox或Grid布局,可以创建适应不同设备屏幕...
相反,块级元素,如`<p>`, `<h1>`-`<h6>`, `<div>`, `<hr>`, `<pre>`, `<ul>`, `<ol>`, `<dd>`, `<dt>`, `<th>`, `<tr>`, `<td>`,它们会自动在页面上占据一整行,可以包含其他块级元素或行内元素。例如,`<p>`用于...
`<b>`和`<i>`用于加粗和斜体,`<font>`控制文字颜色和大小,`<marquee>`实现滚动文字,`<hr>`添加水平线,`<ul>`和`<li>`创建无序列表,`<a>`定义超链接,`<table>`创建表格,`<input>`、`<textarea>`和`<select>`...
此外,还有许多其他标签,如`<form>`用于创建表单,`<input>`定义输入控件,`<button>`定义按钮,`<label>`定义输入控件的标注,`<select>`和`<option>`用于创建下拉列表,`<textarea>`定义多行文本输入等。...
在众多的表单元素中,`<textarea>` 控件扮演着重要的角色,它允许用户输入多行文本,例如用于评论、留言或者填写长篇文章。在本课件中,我们将深入探讨`<textarea>`的基本用法和一些高级特性。 ### `<textarea>` ...
`<body>`标签内的元素如段落(<p>)、标题(<h1>至<h6>)、链接(<a>)、列表(<ul>, <ol>, <li>)、图像(<img>)、表格(<table>)、框架(<frameset>, <frame>)和表单(<form>, <input>, <textarea>, <button>)...
`<textarea>` 标签用于定义一个多行文本输入框,适合于用户输入大量的文本信息,例如评论、反馈或文章撰写。默认情况下,文本框内文字的字体样式为等宽字体,如`Courier`。 **属性详解:** - **cols**: 规定文本...
在给定的“test.html”文件中,很可能包含了一个`<textarea>`元素,用于输入JavaScript代码,并有一个按钮或事件监听器来触发代码的执行。这是通过`eval()`函数来实现的,`eval()`可以解析并执行字符串形式的...
<TH ALIGN=CENTER COLSPAN=3> 第一季度 </TH> <TH ALIGN=CENTER COLSPAN=3> 第二季度 </TH> <TR> <TD> 一月 </TD> <TD> 二月 </TD> <TD> 三月 </TD> <TD> 四月 </TD> <TD> 五月 </TD> <TD> 六月 </TD> </...
31. <option>:<option> 元素定义下拉列表中的一个选项(一个条目)。option 元素位于<select>元素内部。 32. <textarea>:<textarea> 标签定义多行的文本输入控件。可以通过 cols 和 rows 属性来规定 textarea 的...
`<form>`元素用于创建表单,`<input>`、`<select>`和`<textarea>`等标签定义不同的输入控件。 总之,HTML是构建网页的基础,通过组合使用各种标签和属性,可以创建出丰富的网页内容。学习HTML有助于理解网页的工作...
<dt>术语一</dt> <dd>术语一解释 1</dd> <dd>术语一解释 2</dd> <dt>术语二</dt> <dd>术语二解释</dd> </dl> ``` ### 表单标签 表单 (`<form>`) 是 Web 应用程序中非常重要的组成部分,用于收集用户输入的...
- 表单元素:熟悉`<input>`, `<select>`, `<textarea>`等表单元素的使用。 - 语义化标签:了解并使用`<header>`, `<footer>`, `<article>`, `<section>`等语义化标签以提高页面的可访问性。 2. CSS基础 - 选择器...