2

People say UA sniffing is bad. So I'm trying to do a feature detection for HTMLInputElement.select().

My reason is that, on iOS mobile devices, the function is supported, but it does not actually select text. I want to detect this so that I can use HTMLInputElement.setSelectionRange() instead.

I tried this:

function checkInputSelectWorks() {
    var testStr = "test";
    var input = document.createElement("input");
    input.value = testStr;
    input.select();

    return input.selectionEnd == testStr.length;
}

jsFiddle

I thought this would be sufficient, but it seems that selectionEnd is set to testStr.length even before calling select(). How should I go about doing this?

No jQuery, please. It shouldn't be necessary.

EDIT: Adding the input element to the DOM did not help. input.SelectionEnd becomes 0 when added to DOM, but it still gets updated after .select() on iOS without actually selecting text.

Community
  • 1
  • 1
CookieEater
  • 2,237
  • 3
  • 29
  • 54

0 Answers0