询问大多数开发人员如何将用户选择的内容复制到剪贴板,他们会提到Flash的需求(因此
Zeroclipboard
等脚本的流行 )。然而,这种想法的调整现在归功于最近浏览器对JavaScript中关键技术的支持的改进,这使得复制到剪贴板本身成为可能。这种JavaScript方法
在IE9 +,Firefox 41+和Chrome 42+中
得到支持,最终为浏览器本身带来了原生剪切/复制支持。在本教程中,我们将看到如何阅读用户选择的文本内容,动态选择页面上的一些文本,最后但并非最不重要的是,将所选内容复制到剪贴板,所有这些都只使用JavaScript。我们现在正进入无Flash区域!
document.execCommand()
检索用户选择的文本内容
让我们从顶部开始,检索用户在页面上选择的内容,直到任何文本内容。
为此,我们使用
了所有现代浏览器和
IE9 +
支持的方法
:
window.getSelection()
|
1
2
3
4
五
6
7
|
<font style=
"vertical-align: inherit;"
><font style=
"vertical-align: inherit;"
>
function
getSelectionText(){</font></font><font></font><font style=
"vertical-align: inherit;"
><font style=
"vertical-align: inherit;"
>
var
selectedText =“”</font></font><font></font><font style=
"vertical-align: inherit;"
><font style=
"vertical-align: inherit;"
>
if
(window.getSelection){
selectedText = window.getSelection()。toString()</font></font><font></font><font style=
"vertical-align: inherit;"
><font style=
"vertical-align: inherit;"
>
}</font></font><font></font><font style=
"vertical-align: inherit;"
><font style=
"vertical-align: inherit;"
>
return
selectedText</font></font><font></font><font style=
"vertical-align: inherit;"
><font style=
"vertical-align: inherit;"
>
}</font></font>
|
window.getSelection()
返回页面上当前选定的文本,并返回
包含该数据
的
对象。
要检索实际文本,我们使用
它将其转换为字符串。
以下示例
在用户将鼠标悬停在文档上时
调用我们的函数
,以便查看用户选择了什么(如果有的话):
Selection
toString()
getSelectionText()
|
1
2
3
4
五
6
|
<font style=
"vertical-align: inherit;"
><font style=
"vertical-align: inherit;"
>document.addEventListener(
'mouseup'
,
function
(){</font></font><font></font><font style=
"vertical-align: inherit;"
><font style=
"vertical-align: inherit;"
>
var
thetext = getSelectionText()</font></font><font></font><font style=
"vertical-align: inherit;"
><font style=
"vertical-align: inherit;"
>
if
(thetext.length> 0){
console.log(thetext)
}</font></font><font></font><font style=
"vertical-align: inherit;"
><font style=
"vertical-align: inherit;"
>
},
false
)</font></font>
|
我们首先检查是否选择了一些文本,就好像用户只是单击页面一样,没有。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69933200/viewspace-2651146/
,如需转载,请注明出处,否则将追究法律责任。