Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/447.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 可以在没有任何用户交互的情况下创建选择对象吗?_Javascript_Selection - Fatal编程技术网

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

Javascript 可以在没有任何用户交互的情况下创建选择对象吗?,javascript,selection,Javascript,Selection,可以在没有任何用户交互的情况下创建对象吗window.getSelection()确实返回一个Selection对象,但除非用户进行某种选择,否则不能返回该对象 是否可以创建一个从页面上的第一个元素开始的选择,然后能够修改()它,而不需要用户做任何事情 例如: 它不会在页面加载时选择任何内容,但如果您单击任何内容,它会进行选择。如果我理解您的要求,那么是的,您可以使用其addRange()方法以编程方式设置选择。例如,要在页面加载时选择文档的整个元素,可以执行以下操作: function sel

可以在没有任何用户交互的情况下创建对象吗
window.getSelection()
确实返回一个
Selection
对象,但除非用户进行某种选择,否则不能返回该对象

是否可以创建一个从页面上的第一个元素开始的选择,然后能够
修改()
它,而不需要用户做任何事情

例如:


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

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

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

window.onload = selectBody;

这在IE<9上不起作用,它对范围和选择有完全不同的方法。

谢谢!这正是我想要的。我知道IE不兼容以及它们的文本范围等,这样就可以了。注意,
范围中的
元素
。selectNode(element)
需要有
innerHTML
内容。否则这就行不通了