1

Does anyone know how to select node (element) in IE8 in javascript? Not using third-party libs is preferred.

In IE9 you can do like this:

var sel = window.getSelection();
sel.removeAllRanges();
var range = document.createRange();
range.selectNode(node);
sel.addRange(range);

How you can do this in IE8?

Andriy F.
  • 2,467
  • 1
  • 25
  • 23

2 Answers2

2

For older IE it's this, provided node is an element:

var range = document.body.createTextRange();
range.moveToElementText(node);
range.select();

For a full cross-browser solution, see

https://stackoverflow.com/a/2044793/96100

Community
  • 1
  • 1
Tim Down
  • 318,141
  • 75
  • 454
  • 536
2

Here is the code I use, it should work across the board:

    var sel, range;
    if(window.getSelection && document.createRange) {
        range = document.createRange();
        range.selectNodeContents(node);
        sel = window.getSelection();
        sel.removeAllRanges();
        sel.addRange(range);

    } else if(document.body.createTextRange) {
        range = document.body.createTextRange();
        range.moveToElementText(node);
        range.select();
    }
Tyler Biscoe
  • 2,322
  • 3
  • 20
  • 33