繁体   English   中英

使用JavaScript将链接URL和标题文本从表单输入字段插入光标位置的文本区域中

[英]Insert link URL and Title text into textarea at cursor location from form input fields using JavaScript

我在stackoverflow上找到了一些代码,可将文本从文本输入字段插入到光标位置的textarea中。

我要做的是修改此工作代码,以便用户可以在两个表单输入字段中输入带有标题文本的URL,从输入中构建完整的超文本链接,并将锚标签的结果HTML作为完整链接插入到textarea中。就像在单击wysiwig编辑器中单击“插入URL”按钮时发生的情况一样。

我将如何修改下面的代码来实现此目的?

<!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>
    <!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!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM