相关疑难解决方法(0)

获取文本框中的当前光标位置

我需要一个代码来查找文本框/文本区域中光标的当前位置.它应该适用于chrome和firefox.以下是我使用的代码:

<!DOCTYPE html>
<html>
  <head>
    <script>
      function textbox()
      {
        document.getElementById('Javascript_example').value = document.activeElement.id;
        var ctl = document.getElementById('Javascript_example');
        alert(ctl);

        var startPos = ctl.selectionStart;
        alert(startPos);
        var endPos = ctl.selectionEnd;
        alert(endPos);
      }
    </script>
  </head>
  <body>

    <input id="Javascript_example" name="one" type="text" value="Javascript_example" onclick="textbox()">

  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

有什么建议吗?

javascript firefox textbox cursor

21
推荐指数
2
解决办法
10万
查看次数

是否有Internet Explorer批准的selectionStart和selectionEnd的替代品?

找出在真实浏览器中选择的内容非常简单:

var range = {
  start: textbox.selectionStart,
  end: textbox.selectionEnd
}
Run Code Online (Sandbox Code Playgroud)

但IE像往常一样,不明白.什么是最好的跨浏览器方式?

javascript internet-explorer

19
推荐指数
3
解决办法
2万
查看次数

使用jQuery选择输入框内的部分字符串

我试图弄清楚如何使用jQuery突出显示输入框内的文本的某些部分.突出显示输入框的全部内容非常简单,但是如何突出显示一个单词或几个字母呢?

谢谢!

javascript jquery

18
推荐指数
1
解决办法
2万
查看次数

获取当前选定的文本

我尝试使用输入中的当前选定文本,window.getSelection()但我总是得到一个空字符串:

expect(browser.executeScript("return window.getSelection().toString();")).toEqual("test");
Run Code Online (Sandbox Code Playgroud)

结果成:

Expected '' to equal 'test'.
Run Code Online (Sandbox Code Playgroud)

使用angularjs.org作为目标站点的完整可重复测试:

describe("My test", function () {
    beforeEach(function () {
        browser.get("https://angularjs.org/");
    });

    it("should select text in an input", function () {
        var query = element(by.css("input.search-query"));
        query.sendKeys("test");
        query.sendKeys(protractor.Key.chord(protractor.Key.COMMAND, "a"));

        expect(browser.executeScript("return window.getSelection().toString();")).toEqual("test");
    });
});
Run Code Online (Sandbox Code Playgroud)

请注意,我实际上看到输入的文本是使用COMMAND +"a"选择的.

我究竟做错了什么?

使用量角器2.5.1,firefox 41.

javascript selenium end-to-end selenium-webdriver protractor

18
推荐指数
1
解决办法
1313
查看次数

如何在文本区域中获取选择的起点和终点?

我想在文本字段或文本区域中获取所选范围的光标开始和结束位置.我在各种论坛上尝试了很多功能.但是当选择的最后一个字符是新行字符时,JavaScript会在IE6中忽略它.有想法的人吗?

javascript position cursor internet-explorer-6

17
推荐指数
3
解决办法
2万
查看次数

在textarea中以像素为单位查找插入位置

我想知道是否有可能在整个页面中找到textarea中的carret的确切位置(以像素为单位).例如,如果我输入This is text了我的文本框,我想知道从屏幕左上角到carot的像素.

它将采用X:200 Y:100的形式.这样我就可以定位浮动div.这需要在javascript中动态完成.

多谢你们

html javascript textarea position cursor

11
推荐指数
1
解决办法
1万
查看次数

创建富文本编辑器AngularJS

我知道有很多很棒的富文本编辑器可以很容易地移植到棱角分明,并且有很多讨论如何做到这一点,但我想创建自己的.

我有一个基本的想法:

  • 创建文本区域并观察输入并在输入更改时执行功能.我熟悉ngBindhtml指令,只是我可以将它应用于元素.

知道我怎么能够创建一个将纯文本呈现的函数html

wysiwyg richtextbox angularjs

8
推荐指数
1
解决办法
2万
查看次数

IE的document.selection.createRange不包括前导或尾随空行

我正在尝试从textarea中提取确切的选择和光标位置.像往常一样,大多数浏览器中的简单操作都不在IE中.

我正在使用这个:

var sel=document.selection.createRange();
var temp=sel.duplicate();
temp.moveToElementText(textarea);
temp.setEndPoint("EndToEnd", sel);
selectionEnd = temp.text.length;
selectionStart = selectionEnd - sel.text.length;
Run Code Online (Sandbox Code Playgroud)

其中99%的时间都有效.问题是TextRange.text不返回前导或尾随换行符.因此,当光标在段落之后是几个空行时,它会在前一段的末尾产生一个位置 - 而不是实际的光标位置.

例如:

the quick brown fox|    <- above code thinks the cursor is here

|    <- when really it's here
Run Code Online (Sandbox Code Playgroud)

我能想到的唯一解决方法是在选择之前和之后临时插入一个字符,抓取实际选择,然后再次删除那些临时字符.这是一个黑客,但在一个快速实验看起来它会起作用.

但首先,我想确定没有更简单的方法.

javascript internet-explorer dom

7
推荐指数
1
解决办法
2万
查看次数

如何为输入元素添加原型?

我有一个输入元素:

<input type="text" id="t" value="abcdefghij" />
Run Code Online (Sandbox Code Playgroud)

我想创建一个 selectionStart

document.getElementById("t").selectionStart
Run Code Online (Sandbox Code Playgroud)

我需要的功能是:

function GetSelectionStart(o) {
    if (o.createTextRange) {
        var r = document.selection.createRange().duplicate()
        r.moveEnd('character', o.value.length)
        if (r.text == '') return o.value.length
        return o.value.lastIndexOf(r.text)
    } else return o.selectionStart;
}

function GetSelectionEnd(o) {
    if (o.createTextRange) {
        var r = document.selection.createRange().duplicate()
        r.moveStart('character', -o.value.length)
        return r.text.length
    } else return o.selectionEnd;
}
Run Code Online (Sandbox Code Playgroud)

如何<input type="text" />在IE上添加此"属性" ?可能吗?

javascript internet-explorer dom prototype

7
推荐指数
1
解决办法
4549
查看次数

当用户在jquery中按Enter键时,在文本框中添加<br/>

我想<br/>在用户点击输入按钮时将(换行符)添加到文本框中.

我怎样才能在jquery onkeyup事件中实现它.可以向我展示示例或实现它的任何好网站.

谢谢

jquery newline onkeyup

6
推荐指数
1
解决办法
8149
查看次数