Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.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中使用Range对象检查选择的节点?_Javascript_Range - Fatal编程技术网

如何在javascript中使用Range对象检查选择的节点?

如何在javascript中使用Range对象检查选择的节点?,javascript,range,Javascript,Range,我想取消选择并检查选择的节点。我正在尝试以下代码。但我认为,我无法指向选择,因此代码失败 <head> <script type="text/javascript"> function SelectAnchorNode () { if (window.getSelection) { // Firefox, Opera, Google Chrome and Safari var selection = windo

我想取消选择并检查选择的节点。我正在尝试以下代码。但我认为,我无法指向选择,因此代码失败

<head>
<script type="text/javascript">
    function SelectAnchorNode () {
        if (window.getSelection) {        // Firefox, Opera, Google Chrome and Safari
            var selection = window.getSelection ();
            if (selection.anchorNode) {
                var rangeToSelect = document.createRange ();
                alert(selection.anchorNode.nodeName);

        } else {
            alert ("Your browser does not support this example!");
        }
    }
</script>
</head>
<body>
    <button onclick="SelectAnchorNode ();">Click to check!</button>
    <br /><br />
    <div>
        <div>This is the first line.</div>
        <p>This is the second line.</p>
    </div>
</body>

函数SelectAnchorNode(){
if(window.getSelection){//Firefox、Opera、Google Chrome和Safari
var selection=window.getSelection();
if(选择.锚定节点){
var rangeToSelect=document.createRange();
警报(selection.anchorNode.nodeName);
}否则{
警报(“您的浏览器不支持此示例!”);
}
}
点击查看!


这是第一行。 这是第二行


您的代码中有一些错误,您缺少一个“}”来关闭函数

此外,由于选择是在按钮上进行的,而不是在锚(链接)上进行的,因此不会返回true

试试这段代码(如果这不是您想要的,我理解,但它可以让您的示例正常工作)

根据您开始选择的位置,您将得到不同的结果,您还需要首先检查是否选择了文本节点(因为我可以直接在正文中进行选择)。但我希望这能让你更接近你的解决方案

问候

Tobias

很抱歉出现错误。这些错误是在编辑时添加的……此外,我能够显示输出“#text”,但我需要显示选择节点,可以是p或div,基于选择。谢谢你的快速回复。你到底想达到什么目的?
<html>
<head>
<script type="text/javascript">
    function SelectAnchorNode () {
        if (window.getSelection) {        // Firefox, Opera, Google Chrome and Safari
            var selection = window.getSelection();
            if (selection.anchorNode) {
                var rangeToSelect = document.createRange();
                alert(selection.anchorNode.nodeName);
            } else {
                alert ("Your browser does not support this example!");
            }
        }
    }
</script>
</head>
<body>
<a onclick="SelectAnchorNode();">Click to check!</a>
<br /><br />
<div>
    <div>This is the first line.</div>
    <p>This is the second line.</p>
</div>
alert(selection.anchorNode.parentNode.nodeName);