JavaScript:将文本复制到剪贴板并附加源超链接

时间:2015-08-12 14:35:30

标签: javascript html

我使用HTML,CSS和WordPress做简单的网站开发。我可以实现JavaScript,并且只需要一点点反复试验,但我根本不熟悉它。

我有一个客户想要Tynt的功能,但他们希望在点击按钮时激活它(按钮点击,文本被复制到剪贴板,并附加超链接)。基本上,他们希望尽可能简单地分享他们的内容,但他们也希望鼓励归因。

我已经使用了"复杂示例"在第二个答案here中找到,只需添加" + document.location.href"到文本末尾复制。一切正常,但链接粘贴为纯文本,而不是活动超链接。

我尝试将其与热门答案here结合使用,但无法弄清楚如何将超链接附加到复制的文本。

以下是我所拥有的(注意:这只是部分内容,如果您想查看完整代码,请查看引用的问题 - 我只想弄清楚如何附加活动超链接到复制的文本。)

var copyBtn = document.querySelector('.js-copy-btn'),

copyBtn.addEventListener('click', function(event) {
  copyTextToClipboard('Text. Powered by: ' + document.location.href);
}); 

单击带有js-copy-btn类的HTML按钮并粘贴产生:

"文本。技术支持:http://websiteaddress.com"

但是,链接会粘贴为纯文本而不是超链接。如何强制链接粘贴为超链接而不是纯文本?

1 个答案:

答案 0 :(得分:2)

我最近遇到了同样的问题并解决了它。我希望你也解决了它,但仍然想发布答案,因为我无法找到任何直接的解决方案。



public static ICacheEntry SetValue(this ICacheEntry entry, object value)
{
   entry.Value = value;
   return entry;
 }

function CopyToClipboard(containerid) {
  if (document.selection) {
    var range = document.body.createTextRange();
    range.moveToElementText(document.getElementById(containerid));
    range.select().createTextRange();
    document.execCommand("copy");
  } else if (window.getSelection) {
    var range = document.createRange();
    range.selectNode(document.getElementById(containerid));
    window.getSelection().removeAllRanges(range);
    window.getSelection().addRange(range);
    document.execCommand("copy");
    alert("text copied");
  }
}




将所有元素放入要复制到剪贴板的div中(按原样),并在按钮单击或任何其他事件以及div id上调用该函数。