我正在尝试将文本复制到剪贴板。但是已经在模式窗口中显示了在ajax调用之后出现的文本。代码如下:
jQuery.fn.selectText = function(){
var doc = document
, element = this[0]
, range, selection
;
if (doc.body.createTextRange) {
range = document.body.createTextRange();
range.moveToElementText(element);
range.select();
} else if (window.getSelection) {
selection = window.getSelection();
range = document.createRange();
range.selectNodeContents(element);
selection.removeAllRanges();
selection.addRange(range);
}
所以range = document.createRange();
之后我尝试插入range.execCommand('copy');
因为我已经阅读了this教程,但它没有提到这个命令的任何问题。我得到的错误如下:
TypeError: range.execCommand is not a function
答案 0 :(得分:2)
范围没有execCommand
函数,execCommand
函数属于document
对象。
取自相同的教程:
当HTML文档切换到designMode时,文档 object公开execCommand方法,该方法允许运行命令 操纵可编辑区域的内容。大多数命令 影响文档的选择(粗体,斜体等),而其他 插入新元素(添加链接)或影响整行 (缩进)。使用contentEditable时,调用execCommand会 影响当前活动的可编辑元素。