Ниже приведена функция, которая возвращает логическое значение, указывающее, выбрано ли все содержимое указанного элемента и работает ли оно во всех основных браузерах, включая IE. Вы можете использовать это с document.body
, чтобы проверить, выбрана ли вся страница.
function areElementContentsSelected(el) {
var range, elRange;
if (window.getSelection && document.createRange) {
var sel = window.getSelection();
if (sel.rangeCount) {
elRange = document.createRange();
elRange.selectNodeContents(el);
for (var i = 0, len = sel.rangeCount; i < len; ++i) {
range = sel.getRangeAt(i);
if (range.compareBoundaryPoints(range.START_TO_START, elRange) <= 0 && range.compareBoundaryPoints(range.END_TO_END, elRange) >= 0) {
return true;
}
}
}
} else if (document.selection && document.selection.createRange && document.selection.type == "Text") {
range = document.selection.createRange();
elRange = range.duplicate();
elRange.moveToElementText(el);
return range.compareEndPoints("StartToStart", elRange) <= 0 && range.compareEndPoints("EndToEnd", elRange) >= 0;
}
return false;
}
alert( areElementContentsSelected(document.body) );