用Javascript在编辑框和TextArea的光标处插入文字
作者: 王者之剑(http://www.albertsong.com/) 日期: 2008-01-30 23:54
本文提供了用Javascript在input type="text"和TextArea的光标处插入字符串的例子。
Javascript代码如下:
本代码在IE6.0和Firefox2.0下测试通过,与参考链接的文章相比主要是加进了JQuery并改进了在firefox下不能在同一位置连续插入的问题。
直接下载例子
InsertAtCursorPos.rar (15 KB , 下载:470次)
参考链接:
http://www.dnew.cn/post/287.htm
http://blog.vishalon.net/Post/57.aspx
Javascript代码如下:
- <html>
- <head>
- <title>Test of inserting characters at cursor position</title>
- <script type="text/javascript" src="jquery.pack.js"></script>
- <script>
- function setCaret(textObj){
- if(textObj.createTextRange){
- textObj.caretPos=document.selection.createRange().duplicate();
- }
- }
- function insertAtCaret(textObj,textFeildValue){
- if(document.all&&textObj.createTextRange&&textObj.caretPos){
- var caretPos=textObj.caretPos;
- caretPos.text=caretPos.text.charAt(caretPos.text.length-1)==''?textFeildValue+'':textFeildValue;
- }else if(textObj.setSelectionRange){
- var rangeStart=textObj.selectionStart;
- var rangeEnd=textObj.selectionEnd;
- var tempStr1=textObj.value.substring(0,rangeStart);
- var tempStr2=textObj.value.substring(rangeEnd);
- textObj.value=tempStr1+textFeildValue+tempStr2;
- textObj.focus();
- var len=textFeildValue.length;
- textObj.setSelectionRange(rangeStart+len,rangeStart+len);
- textObj.blur();
- }else {
- textObj.value+=textFeildValue;
- }
- }
- $(document).ready(function(){
- if($.browser.msie){
- $("#tag")
- .click(function(){
- setCaret($(this).get(0));
- })
- .select(function(){
- setCaret($(this).get(0));
- })
- .keyup(function(){
- setCaret($(this).get(0));
- });
- $("#tagA")
- .click(function(){
- setCaret($(this).get(0));
- })
- .select(function(){
- setCaret($(this).get(0));
- })
- .keyup(function(){
- setCaret($(this).get(0));
- });
- }
- $("a.insertTag")
- .click(function(){
- insertAtCaret($("#tag").get(0),$(this).html());
- });
- $("a.insertTagA")
- .click(function(){
- insertAtCaret($("#tagA").get(0),$(this).html());
- });
- });
- </script>
- </head>
- <body>
- References:<br/>
- http://www.dnew.cn/post/287.htm<br/>
- http://blog.vishalon.net/Post/57.aspx
- <div>
- <form>
- <input type="text" id="tag" value="testtesttest" size="50" /><br/>
- <a class="insertTag" href="javascript:void(0)">tag1</a>
- <a class="insertTag" href="javascript:void(0)">tag2</a>
- <br/>
- <textarea id="tagA" style="width:300px;height:120px;" >tttttt tttt</textarea><br/>
- <a class="insertTagA" href="javascript:void(0)">tag3</a>
- <a class="insertTagA" href="javascript:void(0)">tag4</a>
- </form>
- </div>
- </body>
- </html>
本代码在IE6.0和Firefox2.0下测试通过,与参考链接的文章相比主要是加进了JQuery并改进了在firefox下不能在同一位置连续插入的问题。
直接下载例子
InsertAtCursorPos.rar (15 KB , 下载:470次)参考链接:
http://www.dnew.cn/post/287.htm
http://blog.vishalon.net/Post/57.aspx
标签: Javascript
黄金价格上升,24年来今天最高
作者: 王者之剑(http://www.albertsong.com/) 日期: 2008-01-29 22:24
百度搜索正式进军日本
作者: 王者之剑(http://www.albertsong.com/) 日期: 2008-01-23 23:55
Windows下开启Apache mod_rewrite模块完全解答
作者: 王者之剑(http://www.albertsong.com/) 日期: 2008-01-19 19:15
Windows下通过命令行安装和删除tomcat5服务的方法
作者: 王者之剑(http://www.albertsong.com/) 日期: 2008-01-18 13:35
MyEclipse 老是 out of memory的一个解决方法
作者: 王者之剑(http://www.albertsong.com/) 日期: 2008-01-15 09:50
一个读写csv文件的C#类
作者: 王者之剑(http://www.albertsong.com/) 日期: 2008-01-14 21:31
CSV(Comma-Separated Values )文件即用逗号分隔的文本文件。
下面是用C#写的一个简单的读写CSV文件的类。
using System;
using System.Collections.Generic;
using System.IO;
using System.Text;
namespace CSVDemo
{
/// <summary>
/// CSVUtil is a helper class handling csv files.
/// </summary>
public class CSVUtil
{
private CSVUtil()
{
}
//write a new file, existed file will be overwritten
public static void WriteCSV(string filePathName,List<String[]>ls)
{
WriteCSV(filePathName,false,ls);
}
//write a file, existed file will be overwritten if append = false
public static void WriteCSV(string filePathName,bool append, List<String[]> ls)
{
StreamWriter fileWriter=new StreamWriter(filePathName,append,Encoding.Default);
foreach(String[] strArr in ls)
{
fileWriter.WriteLine(String.Join (“,",strArr) );
}
fileWriter.Flush();
fileWriter.Close();
}
public static List<String[]> ReadCSV(string filePathName)
{
List<String[]> ls = new List<String[]>();
StreamReader fileReader=new StreamReader(filePathName);
string strLine="";
while (strLine != null)
{
strLine = fileReader.ReadLine();
if (strLine != null && strLine.Length>0)
{
ls.Add(strLine.Split(','));
//Debug.WriteLine(strLine);
}
}
fileReader.Close();
return ls;
}
}
}
如何使用这个类可以看源代码。
CSVDemo.rar (12.76 KB , 下载:947次)
源代码演示了:
1.listview控件,openFileDialog控件的简单运用;
2.autoseed的Random类的使用;
3.保存CSV文件;
4.读取CSV文件;
5.简单的分层思想,视图-listview,业务数据-data,永久数据-csv file
本代码不涉及:
1.listview控件的复杂控制
2.CSV文件内容合法性检验,例如每行是否有相同的列。
Update
2007-12-14 一个不简单的处理csv文件的C#类(库)
http://www.codeproject.com/KB/database/CsvReader.aspx
我没有用过,连下载都没有,因为我用不着,也许某一天会有用。
2008-1-14 按游客的指点修改了WriteCSV,精简了代码,Demo的代码也已更新。
下面是用C#写的一个简单的读写CSV文件的类。
using System;
using System.Collections.Generic;
using System.IO;
using System.Text;
namespace CSVDemo
{
/// <summary>
/// CSVUtil is a helper class handling csv files.
/// </summary>
public class CSVUtil
{
private CSVUtil()
{
}
//write a new file, existed file will be overwritten
public static void WriteCSV(string filePathName,List<String[]>ls)
{
WriteCSV(filePathName,false,ls);
}
//write a file, existed file will be overwritten if append = false
public static void WriteCSV(string filePathName,bool append, List<String[]> ls)
{
StreamWriter fileWriter=new StreamWriter(filePathName,append,Encoding.Default);
foreach(String[] strArr in ls)
{
fileWriter.WriteLine(String.Join (“,",strArr) );
}
fileWriter.Flush();
fileWriter.Close();
}
public static List<String[]> ReadCSV(string filePathName)
{
List<String[]> ls = new List<String[]>();
StreamReader fileReader=new StreamReader(filePathName);
string strLine="";
while (strLine != null)
{
strLine = fileReader.ReadLine();
if (strLine != null && strLine.Length>0)
{
ls.Add(strLine.Split(','));
//Debug.WriteLine(strLine);
}
}
fileReader.Close();
return ls;
}
}
}
如何使用这个类可以看源代码。
CSVDemo.rar (12.76 KB , 下载:947次)源代码演示了:
1.listview控件,openFileDialog控件的简单运用;
2.autoseed的Random类的使用;
3.保存CSV文件;
4.读取CSV文件;
5.简单的分层思想,视图-listview,业务数据-data,永久数据-csv file
本代码不涉及:
1.listview控件的复杂控制
2.CSV文件内容合法性检验,例如每行是否有相同的列。
Update
2007-12-14 一个不简单的处理csv文件的C#类(库)
http://www.codeproject.com/KB/database/CsvReader.aspx
我没有用过,连下载都没有,因为我用不着,也许某一天会有用。
2008-1-14 按游客的指点修改了WriteCSV,精简了代码,Demo的代码也已更新。
标签: CSV文件










