可以在没有任何用户交互的情况下创建选择对象吗

时间:2011-06-04 22:47:55

标签: javascript selection

可以在没有任何用户交互的情况下创建Selection对象吗? window.getSelection()会返回Selection个对象,但除非用户进行了某种选择,否则您无法modify()它。

是否可以创建一个从页面的第一个元素开始然后能够modify()的选择,而无需用户做任何事情?

示例:http://jsfiddle.net/niklasvh/L5M3U/

它不会在页面加载时选择任何内容,但如果您点击任何内容,它确实会进行选择。

1 个答案:

答案 0 :(得分:9)

如果我理解您的要求,那么是的,您可以使用其addRange()方法以编程方式设置选择。例如,要在页面加载时选择整个文档的<body>元素,您可以执行以下操作:

function selectBody() {
    var range = document.createRange();
    range.selectNode(document.body);
    var sel = window.getSelection();
    sel.removeAllRanges();
    sel.addRange(range);
}

window.onload = selectBody;

这不适用于IE&lt; 9,它有一个完全不同的范围和选择方法。