Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/39.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_Css_Ecmascript 6_Anchor_Textselection - Fatal编程技术网

Javascript 自动选择超链接的显示文本

Javascript 自动选择超链接的显示文本,javascript,css,ecmascript-6,anchor,textselection,Javascript,Css,Ecmascript 6,Anchor,Textselection,如何在悬停时自动选择超链接的显示文本 let aryAnchors = [... document.getElementsByTagName("a")]; for(a of aryAnchors) { a.addEventListener("mouseover",function() { // What goes here? }); } 或者,如果这可以在CSS3中实现,那就更好了 一些背景(如果您愿意): 我有一个页面,用户通常希望通过突出显示超链接并

如何在悬停时自动选择超链接的显示文本

let aryAnchors = [... document.getElementsByTagName("a")];
for(a of aryAnchors)
{
    a.addEventListener("mouseover",function()
    {
        // What goes here?
    });
}
或者,如果这可以在CSS3中实现,那就更好了

一些背景(如果您愿意):

我有一个页面,用户通常希望通过突出显示超链接并点击control-C将其复制到剪贴板中(但他们设置了其他快捷键,除了将其复制到剪贴板之外,还可以对所选文本执行其他操作)

在超链接周围手动高亮显示(不单击超链接,或不复制所选内容两端的空白)很麻烦


在不使用浏览器扩展的情况下,我希望在悬停时选中超链接的显示文本,以便用户只需将鼠标悬停在超链接上,然后按ctrl-C键(例如)。

而不是按CSS键。这里需要JavaScript

使用
范围
界面的将节点的内容设置为范围。然后将其添加到
选择
对象

这里是一个粗略的演示片段

功能选择(elem){
var范围、选择;
selection=window.getSelection();
range=document.createRange();
范围。选择节点内容(元素);
selection.removeAllRanges();
选择。添加范围(范围);
}
函数取消选择(){
var selection=window.getSelection();
selection.removeAllRanges();
}
document.addEventListener('mouseover',textselection);
document.addEventListener('mouseout',textdelection);
功能文本选择(e){
如果(e.target.tagName=='A'){select(e.target);}
}
函数文本取消选择(e){
如果(e.target.tagName=='A'){deselect();}
}
*{框大小:边框框;填充:0;边距:0;字体系列:无衬线;}
a{margin:8px;}
p、 ul,hr{margin:8px;}
下面是一个链接列表,您可以将鼠标悬停在上面进行选择。您需要首先通过单击文档上的任意位置来聚焦页面


下面是一个列表,您不能将鼠标悬停在上面进行选择


  • 列出项目1
  • 列出项目2
  • 列出项目3
尽管您的代码明确高亮显示链接,但按ctrl-c键不会复制高亮显示的链接(也不会右键单击>复制)。@LonnieBest。我在发布前测试了它。你需要聚焦页面。单击文档上的任意位置一次。然后,您应该能够看到蓝色高亮显示。否则它只会显示一个灰色的高光。它需要聚焦在页面上。好的,我明白了。谢谢。顺便说一下,你把你的演示称为“粗糙”,但我看不出有什么粗糙之处。这是很好的代码。它甚至适用于动态创建的超链接,这些超链接在页面加载时甚至不在dom中。干得好。谢谢@LonnieBest的客气话。我称之为粗糙,因为我很快就输入了这个答案,没有检查边缘情况、异常、跨浏览器和通常的健全性检查。它是最小的,适用于主要浏览器。那就是我停下来的地方。我相信你会解决这个问题的。是的,它适用于动态元素,因为我使用事件委托(这是我的习惯),即在最高可能的父级上使用事件处理程序,并使用
e.target