如果只需要完成简单的功能。而不愿使用庞大的插件,不妨自己制作简单的在线文本编辑器
首先,制作之前,要明白几个概念
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>`元素,将`<pre>`内容放入其中,选中该内容,然后调用`document.execCommand("Copy")`命令复制文本。复制成功后,更新按钮的文字提示,并在一段时间后恢复原始文字。 ```javascript $...
<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></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...
而<form>标签用于构建表单,收集用户输入,与服务器进行交互,其中包含<input>、<select>、<textarea>等元素。 随着技术的发展,HTML5引入了更多新功能,如音频<audio>、视频<video>、canvas画布、geolocation地理...
在这个例子中,我们创建了一个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>` ...
-<textarea>:定义文本区域。 7. 内嵌内容标签 -<iframe>:定义内嵌框架,可以在网页中嵌入另一个HTML文档。 -<embed>:定义外部应用或交互式内容(如Flash)。 -<object>:定义外部资源,通常用于嵌入Java ...
8. **表单标签** (`<form>`, `<input>`, `<textarea>`, `<select>`, `<option>`, `<label>`, `<button>`): - `<form>`:定义表单,收集用户输入。 - `action` 属性:指定表单提交的URL。 - `method` 属性:指定...
`<body>`标签内的元素如段落(<p>)、标题(<h1>至<h6>)、链接(<a>)、列表(<ul>, <ol>, <li>)、图像(<img>)、表格(<table>)、框架(<frameset>, <frame>)和表单(<form>, <input>, <textarea>, <button>)...
典型的内联块级元素包括<button>、<input>、<textarea>、<label>等。内联块级元素允许内容在行内排列,同时又可以设置宽度和高度,以便更好地控制布局。 HTML5的出现,引入了一些新的语义化元素,例如<section>、...
`<textarea>` 标签用于定义一个多行文本输入框,适合于用户输入大量的文本信息,例如评论、反馈或文章撰写。默认情况下,文本框内文字的字体样式为等宽字体,如`Courier`。 **属性详解:** - **cols**: 规定文本...
在给定的“test.html”文件中,很可能包含了一个`<textarea>`元素,用于输入JavaScript代码,并有一个按钮或事件监听器来触发代码的执行。这是通过`eval()`函数来实现的,`eval()`可以解析并执行字符串形式的...
行内元素则不会占据一整行,其宽度仅包含其内容的宽度,常见的行内元素包括<span>、<a>、<img>、<strong>、<em>、<br>、<input>、<textarea>和<button>。行内块级元素结合了块级和行内元素的特点,不会自动换行,但...