使用JavaScript将链接URL和标题文本从表单输入字段插入光标位置的文本区域
我在stackoverflow上发现了一些代码,它将文本输入字段中的文本插入光标位置的文本区域 我想做的是修改这个工作代码,这样用户就可以在两个表单输入字段中输入一个带有标题文本的URL,从输入中构建一个完整的超文本链接,并将锚定标记的结果HTML作为光标位置的完整链接插入文本区域,就像在所见即所得编辑器中单击“插入URL”按钮时发生的一样 我将如何修改下面的代码来实现这一点使用JavaScript将链接URL和标题文本从表单输入字段插入光标位置的文本区域,javascript,input,textarea,Javascript,Input,Textarea,我在stackoverflow上发现了一些代码,它将文本输入字段中的文本插入光标位置的文本区域 我想做的是修改这个工作代码,这样用户就可以在两个表单输入字段中输入一个带有标题文本的URL,从输入中构建一个完整的超文本链接,并将锚定标记的结果HTML作为光标位置的完整链接插入文本区域,就像在所见即所得编辑器中单击“插入URL”按钮时发生的一样 我将如何修改下面的代码来实现这一点 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Test Page</title>
<script type="text/javascript">
window.onload = function()
{
btn = document.getElementById("btnInsertText");
myText = document.getElementById("myTextArea");
text = document.getElementById("textToInsert");
btn.onclick = function()
{
insertAtCursor(myText, text.value);
}
}
function insertAtCursor(myField, myValue)
{
//IE support
if (document.selection)
{
myField.focus();
sel = document.selection.createRange();
sel.text = myValue;
}
//Mozilla/Firefox/Netscape 7+ support
else if (myField.selectionStart || myField.selectionStart == '0')
{
var startPos = myField.selectionStart;
var endPos = myField.selectionEnd;
myField.value = myField.value.substring(0, startPos)+ myValue
+ myField.value.substring(endPos, myField.value.length);
}
else
{
myField.value += myValue;
}
}
</script>
</head>
<body>
Text To Insert: <input type="text" id="textToInsert" />
<input type="button" id="btnInsertText" value="Insert Text" /><br />
<br />
<textarea id="myTextArea" rows="6" cols="50">
Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old.
</textarea>
</body>
</html>
测试页
window.onload=函数()
{
btn=document.getElementById(“btn插入文本”);
myText=document.getElementById(“myTextArea”);
text=document.getElementById(“textToInsert”);
btn.onclick=函数()
{
insertAtCursor(myText,text.value);
}
}
函数insertAtCursor(myField,myValue)
{
//IE支持
if(文档选择)
{
myField.focus();
sel=document.selection.createRange();
sel.text=myValue;
}
//Mozilla/Firefox/Netscape 7+支持
else if(myField.selectionStart | | myField.selectionStart=='0')
{
var startPos=myField.selectionStart;
var endPos=myField.selectionEnd;
myField.value=myField.value.substring(0,startPos)+myValue
+myField.value.substring(endPos,myField.value.length);
}
其他的
{
myField.value+=myValue;
}
}
要插入的文本:
与流行的观点相反,Lorem Ipsum不是简单的随机文本。它起源于公元前45年的一段古典拉丁文学,距今已有2000多年的历史。
测试页
window.onload=函数()
{
btn=document.getElementById(“btn插入文本”);
myText=document.getElementById(“myTextArea”);
title=document.getElementById(“insTitle”);
url=document.getElementById(“保险”);
btn.onclick=函数()
{
insertAtCursor(myText、title.value、url.value);
}
}
函数insertAtCursor(myField、title、url)
{
//IE支持
if(文档选择)
{
myField.focus();
sel=document.selection.createRange();
sel.text='';
}
//Mozilla/Firefox/Netscape 7+支持
else if(myField.selectionStart | | myField.selectionStart=='0')
{
var startPos=myField.selectionStart;
var endPos=myField.selectionEnd;
myField.value=myField.value.substring(0,startPos)+''+myField.value.substring(endPos,myField.value.length);
}
其他的
{
myField.value+=myValue;
}
}
标题:
网址:
与流行的观点相反,Lorem Ipsum不是简单的随机文本。它起源于公元前45年的一段古典拉丁文学,距今已有2000多年的历史。
但是没有在IE中测试!
测试页
window.onload=函数()
{
btn=document.getElementById(“btn插入文本”);
myText=document.getElementById(“myTextArea”);
title=document.getElementById(“insTitle”);
url=document.getElementById(“保险”);
btn.onclick=函数()
{
insertAtCursor(myText、title.value、url.value);
}
}
函数insertAtCursor(myField、title、url)
{
//IE支持
if(文档选择)
{
myField.focus();
sel=document.selection.createRange();
sel.text='';
}
//Mozilla/Firefox/Netscape 7+支持
else if(myField.selectionStart | | myField.selectionStart=='0')
{
var startPos=myField.selectionStart;
var endPos=myField.selectionEnd;
myField.value=myField.value.substring(0,startPos)+''+myField.value.substring(endPos,myField.value.length);
}
其他的
{
myField.value+=myValue;
}
}
标题:
网址:
与流行的观点相反,Lorem Ipsum不是简单的随机文本。它起源于公元前45年的一段古典拉丁文学,距今已有2000多年的历史。
但是没有在IE中测试!
格式化将非常棒。请清理代码。格式化会很棒。请清理代码。哇!太快了!谢谢你的迅速帮助!哇!太快了!谢谢你的迅速帮助!
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Test Page</title>
<script type="text/javascript">
window.onload = function()
{
btn = document.getElementById("btnInsertText");
myText = document.getElementById("myTextArea");
title = document.getElementById("insTitle");
url = document.getElementById("insUrl");
btn.onclick = function()
{
insertAtCursor(myText, title.value, url.value);
}
}
function insertAtCursor(myField, title, url)
{
//IE support
if (document.selection)
{
myField.focus();
sel = document.selection.createRange();
sel.text = '<a href="'+url+'">'+title+'</a>';
}
//Mozilla/Firefox/Netscape 7+ support
else if (myField.selectionStart || myField.selectionStart == '0')
{
var startPos = myField.selectionStart;
var endPos = myField.selectionEnd;
myField.value = myField.value.substring(0, startPos)+ '<a href="'+url+'">'+title+'</a>' + myField.value.substring(endPos, myField.value.length);
}
else
{
myField.value += myValue;
}
}
</script>
</head>
<body>
title: <input type="text" id="insTitle" /><br />
url: <input type="text" id="insUrl" />
<input type="button" id="btnInsertText" value="Insert Text" /><br /><br />
<textarea id="myTextArea" rows="6" cols="50">
Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old.
</textarea>
</body>
</html>
However not tested in IE!