【问题标题】:jQuery select div, add str to selected [duplicate]jQuery选择div,将str添加到选定的[重复]
【发布时间】:2013-12-04 22:35:55
【问题描述】:

我有一个像 <div id="content">some text</div> 这样的 div。

如果用户想通过选择 div 内的文本(或部分)来复制内容,我想在其中添加一个字符串,例如“一些文本 + 在:mylink 上查看更多信息”

有什么建议吗?

编辑

我的意思是这个网站上的“描述”-Div:

http://haaacks.com/view/158/RendDx9_%5BVersion_1.5%5D

如果用户尝试从该 div 复制(或来自上述 div 的其他信息),我希望得到一个附加的字符串:“ - more on [link to the site]”

【问题讨论】:

  • 阅读this question了解许多相关和相关的解决方案。
  • 谢谢,但我认为这不是我要搜索的内容...我想在所选内容上添加字符串,仅在某些特定的 div 中(可能是每个类选择器)在内容上附加该字符串的干净解决方案?
  • @Bird 我猜-您可以跟踪 mousedown/mouseup 事件以在要启用更多链接的选定 DIV 元素上将布尔变量设置为真或假-检查 addLink 中的布尔变量下面的函数来附加文本。
  • 通过下面的评论解决了这个问题,但感谢您的帮助:)

标签: jquery html select


【解决方案1】:

使用来自http://www.tynt.com/product_copypaste.php 的脚本或编写您自己的脚本,如下所示:

<script type="text/javascript">
function addLink() {
    var body_element = document.getElementsByTagName('body')[0];
    var selection;
    selection = window.getSelection();
    var pagelink = "<br /><br /> Read more at: <a href='"+document.location.href+"'>"+document.location.href+"</a><br />Copyright &copy; c.bavota"; // change this if you want
    var copytext = selection + pagelink;
    var newdiv = document.createElement('div');
    newdiv.style.position='absolute';
    newdiv.style.left='-99999px';
    body_element.appendChild(newdiv);
    newdiv.innerHTML = copytext;
    selection.selectAllChildren(newdiv);
    window.setTimeout(function() {
        body_element.removeChild(newdiv);
    },0);
}
document.oncopy = addLink;
</script>

原始致谢:http://bavotasan.com/tutorials/add-a-copyright-notice-to-copied-text/

【讨论】:

  • 请不要提交仅仅是从另一个页面复制和粘贴代码的答案。将来,外部链接及其解释可能会随时消失。
  • 谢谢!但我不明白为什么会有newdiv? jQuery没有任何解决方案可以简单地将字符串添加到所选内容吗?
  • @Bird - 上述代码中的新虚拟 DIV 元素用于替换原来为剪贴板选择的窗口元素中的复制选择。出于安全目的的 Web 应用程序不能直接访问系统的本地资源,例如剪贴板 - 在这种情况下,更改 Window 的选择是将某些内容附加到最初选择的元素的技巧。
  • 好的,现在我明白了,谢谢!它对我很有效:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-03-23
  • 2015-04-09
  • 2011-08-13
  • 1970-01-01
  • 2016-01-27
  • 2011-11-23
  • 2011-05-06
相关资源
最近更新 更多