Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/386.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 - Fatal编程技术网

Javascript 在变量中存储突出显示的文本

Javascript 在变量中存储突出显示的文本,javascript,Javascript,是否有javascript函数允许我捕获当前用光标突出显示的文本并将其存储在变量中?我一直在尝试document.selection.createRange().text,但这不起作用。有没有其他可能的选择?代码如下: function moremagic(){ var output = document.selection.createRange(); alert("I Work!");} 当我运行该函数时,它不会写入写入语句,因此我知道有问题。是的,你想要。是的,你想要。不礼貌地窃取 在“

是否有javascript函数允许我捕获当前用光标突出显示的文本并将其存储在变量中?我一直在尝试document.selection.createRange().text,但这不起作用。有没有其他可能的选择?代码如下:

function moremagic(){
var output = document.selection.createRange();
alert("I Work!");}
当我运行该函数时,它不会写入写入语句,因此我知道有问题。

是的,你想要。

是的,你想要。

不礼貌地窃取

在“onClick”函数或其他任何函数中使用此选项,它将在几乎任何浏览器中返回所选文本。

被恶意窃取

function getSelectedText() {
    if (window.getSelection) {
        return "" + window.getSelection();
    } else if (document.selection && document.selection.type == "Text") {
        return document.selection.createRange().text;
    }
    return "";
}

在“onClick”函数或其他任何函数中使用它,它将在几乎任何浏览器中返回所选文本。

Oops,我忘记了IE实现了“document.selection”。所以,如果您想要跨浏览器代码,您需要分支.Oops,我忘了IE实现了“document.selection”。因此,如果需要跨浏览器代码,则需要进行分支。
window.getSelection()
将返回一个
Selection
对象,而不是字符串。按照我的理解,它只是用于检查浏览器检查的返回值。一个适用于“所有”浏览器,另一个适用于IE;)我想你误解了。在使用对象/函数之前,它正在检查对象/函数是否存在,这是正确的。问题是,在非IE浏览器中,此函数将返回一个
Selection
对象,在IE中返回一个字符串。在返回之前,您需要在
Selection
上调用
toString()
window.getSelection()
将返回一个
Selection
对象,而不是字符串。按照我的阅读方式,它只是用于检查浏览器检查的返回值。一个适用于“所有”浏览器,另一个适用于IE;)我想你误解了。在使用对象/函数之前,它正在检查对象/函数是否存在,这是正确的。问题是此函数将在非IE浏览器中返回一个
选择
对象,在IE中返回一个字符串。在返回之前,需要在
选择
上调用
toString()
function getSelectedText() {
    if (window.getSelection) {
        return "" + window.getSelection();
    } else if (document.selection && document.selection.type == "Text") {
        return document.selection.createRange().text;
    }
    return "";
}