将选择保留在文本区域中

时间:2010-10-24 12:33:30

标签: javascript selection onblur

我可以阻止“onblur”事件中的选择丢失吗?

<!DOCTYPE html>

<html xmlns = "http://www.w3.org/1999/xhtml" xml:lang = "en" lang = "en">
    <head>
        <meta http-equiv = "Content-Type" content = "text/html; charset=utf-8">

        <script type = "text/javascript">
            window.onload = function () {
                var textarea = document.getElementsByTagName ("textarea")[0];

                textarea.onblur = function () {
                    alert ("Should keep selection");

                    return false;
                }
            }
        </script>

        <title>Select me !</title>
    </head>

    <body>
        <textarea>Select me !</textarea>
    </body>
</html>

感谢/

3 个答案:

答案 0 :(得分:5)

我认为这不是一个好主意。手中有鼠标的用户可以单击页面上的任意位置。如果你让他回到textarea,它将不会遵循web accessibility的原则。

答案 1 :(得分:4)

也许你的意思是你想要记住选择,即使用户专注于另一个元素,这样如果他们回到textarea,仍然会选择相同的文本。是这种情况吗?

如果是这样,我认为最简单的方法是将textarea放在同一域中的iframe中。每个文档都保留自己的选择上下文。当然,您需要从textarea读取数据,并可能将其复制到表单中的隐藏字段,因为您不能在另一个文档中的表单中包含字段,因此您需要进行一种代理

答案 2 :(得分:2)

           textarea.onblur = function () {
                alert ("Should keep selection");
                textarea.focus();

                return false;
            }