Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/384.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 使用零宽度空间和execCommand(“复制”)时发生冲突_Javascript_Jquery_Css - Fatal编程技术网

Javascript 使用零宽度空间和execCommand(“复制”)时发生冲突

Javascript 使用零宽度空间和execCommand(“复制”)时发生冲突,javascript,jquery,css,Javascript,Jquery,Css,我会尽可能简单地解释我的意思。 我想向用户显示一个弹出窗口,其中包含要复制(动态创建)的url链接,例如(在实际中,文本要长得多): 为了正确地显示这一点(我的意思是很好地打断这一行以适应弹出窗口),我使用了零宽度空间​因此代码如下所示: var url = "http://myweb.com/en/​728,​​1,​​5a2a16,​​5e4f4f,​​4a3f7a,​​12,​&a

我会尽可能简单地解释我的意思。 我想向用户显示一个弹出窗口,其中包含要复制(动态创建)的url链接,例如(在实际中,文本要长得多):

为了正确地显示这一点(我的意思是很好地打断这一行以适应弹出窗口),我使用了零宽度空间
因此代码如下所示:

var url = "http://myweb.com/en/​728,​​1,​​5a2a16,​​5e4f4f,​​4a3f7a,​​12,​​12";
$("#content").html(url);
接下来,当弹出窗口出现时,我可以通过选择所有内容并使用ctrl+c复制此文本,或者只需单击一个按钮来自动复制我用于该文本的一段谷歌代码:

window.getSelection().removeAllRanges();
var seltext = document.querySelector("#content");  
var range = document.createRange();  
range.selectNode(seltext);  
window.getSelection().addRange(range);  
var successful = document.execCommand("copy"); 
当我复制URL(无论以何种方式)并将其粘贴到浏览器中并点击enter键后,问题就开始了,然后我得到以下信息:

The requested URL myweb.com/en/728,​1,​5a2a16,​5e4f4f,​4a3f7a,​12,​12,​12 was not found on this server.

当我删除零宽度空格字符并使用
$(“#content”).text(url)时,问题就消失了(文本而不是html)但我在正确的长换行时遇到了另一个问题。有人知道如何让这些东西一起工作吗?(因此,行将在我想要的区域断开-逗号后,复制功能不会复制任何额外字符,只是用户在屏幕上看到的字符)

我认为最好的解决方案是使用CSS。 请注意,在Firefox&IE中,必须将锚点的display属性设置为
block
,否则将无法打断单词


测试1
{字中断:全部中断;宽度:150px;显示:块;}

我认为最好的解决方案就是使用CSS。 请注意,在Firefox&IE中,必须将锚点的display属性设置为
block
,否则将无法打断单词


测试1
{字中断:全部中断;宽度:150px;显示:块;}

看这篇文章:这篇文章可能很有趣,但我无法在我的案例中发挥作用。看这篇文章:这篇文章可能很有趣,但我无法在我的案例中发挥作用。谢谢你的回答,现在使用你的解决方案会更好,但我更喜欢在逗号后断线。我想知道第二种方法如何工作(在调用execCommand之前删除空白)。我能想到的唯一方法就是获取内容,删除空白,发回内容,最后运行上面显示的代码,但我不喜欢这个想法。也许有更好的解决方案,但现在我将使用你的建议与css。检查答案,我添加了一个JS代码,涵盖了你所要求的谢谢你,但我认为我会坚持公正的css解决方案(至少现在)谢谢你的回答,现在使用你的解决方案更好,但我更喜欢在逗号后断线。我想知道第二种方法如何工作(在调用execCommand之前删除空白)。我能想到的唯一方法就是获取内容,删除空白,发回内容,最后运行上面显示的代码,但我不喜欢这个想法。也许有更好的方法,但现在我将把你的建议用于css。检查答案,我添加了一个JS代码,涵盖了你为感谢你所要求的内容,但我认为我会坚持使用公正的css解决方案(至少现在)
The requested URL myweb.com/en/728,​1,​5a2a16,​5e4f4f,​4a3f7a,​12,​12,​12 was not found on this server.