【问题标题】:How does this JS copy trick work?这个 JS 复制技巧是如何工作的?
【发布时间】:2013-03-30 13:39:38
【问题描述】:

this page 几乎页面上的任何位置,如果您复制,您会在副本末尾添加字符串Read more at http://。我想知道怎么做。查看源代码(post-copypaste.js)并设置断点后,我不明白。当我选择文本时,该区域似乎正在触发。

我尝试查看 DOM(通过在 Firefox 中查看选定的源),但没有看到 dom 中的文本。所以它一定是一个javascript技巧。我可以想象捕获一个控制 C 事件(我不知道这是否正在发生),但我无法想象如何添加或影响正在编译的文本,因为它属于 dom。我没有看到闪烁或任何东西

这个 JS 技巧是如何工作的,或者我如何调试它来解决这个问题?

【问题讨论】:

  • 在该页面上,它是通过 i.po.st/static/script/post-copypaste.js 完成的(在 Chrome Web Inspector 中找到,div.block-feed 上的 copy 事件有一个监听器)
  • 说真的……为什么要投反对票? OP有一个真正的问题并正在寻求帮助。已经对这个问题进行了体面的研究,并且 OP 的意图很明确。
  • 我在 Chrome 24 中没有得到相同的行为...
  • 这确实是 Javascript!你可以找到一个脚本来使用here!
  • @guypursey:我的 chrome 25 做到了。

标签: javascript dom


【解决方案1】:

但尴尬的是常规窗口/dom上的选择似乎没有受到影响。

它是,但只是不可见。通常发生的情况是页面上的其他地方有一个容器(不一定可见)。您选择的内容将被粘贴到那里,然后扩展,然后从容器中复制和删除。这一切都需要几分之一秒,当您将其粘贴到某个地方时,您的剪贴板已经存储了扩展内容。

如果您仔细查看您链接的页面作为示例,正文中有一个空的 div 标记,其类为 pw-root。 <div class='pw-root'></div> 当你复制文本时,一秒钟(例如在 Firebug 中可见)它会按照上面的解释发生变化,然后再次被清空。

【讨论】:

  • 有趣。当焦点/选择位于屏幕外/隐藏的 div 上时,我仍然不知道选择(在屏幕上未隐藏)是如何保持不变的。有人发布了bavotasan.com/2010/add-a-copyright-notice-to-copied-text,在该示例中,由于技术原因,文本确实在副本中未被选中。
  • 你如何以这样一种方式打破你可以看到这种情况发生?我记得曾经有人向我展示了一个 chrome 技巧,但我不知道如何让萤火虫在这一点上打破
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-05-10
  • 1970-01-01
  • 2011-03-16
  • 2016-03-01
  • 2012-08-11
  • 2011-02-14
  • 2011-02-05
相关资源
最近更新 更多