用户在移动浏览器中复制网页内容时如何自动添加版权?
Posted
技术标签:
【中文标题】用户在移动浏览器中复制网页内容时如何自动添加版权?【英文标题】:How to auto add copyright when user copy the web content in mobile browsers? 【发布时间】:2016-02-26 03:03:34 【问题描述】:setClipboardText = function(event)
var htmlData, node, textData;
event.cancelable = true;
event.preventDefault(); //add this code will make ios paste null
node = document.createElement('div');
node.appendChild(window.getSelection().getRangeAt(0).cloneContents());
htmlData = '<div>Some copyright' + node.innerHTML + '</div>';
textData = 'Some copyright' + window.getSelection().getRangeAt(0);
event.clipboardData.setData('text/html', htmlData);
event.clipboardData.setData('text/plain', textData);
;
copyrightRange = document.getElementById('content-copyright');
copyrightRange.addEventListener('copy', function(e)
setClipboardText(e);
上面的代码可以在电脑浏览器上运行,但是在手机浏览器上就不行了。我已经测试了问题是event.preventDefault();
。但是没有这个,我的功能将没有意义。有人可以帮助我吗?
【问题讨论】:
只是为了记录,我绝对讨厌网站会弄乱你的剪贴板。 我也不喜欢,但现在这是我的工作,我必须这样做。 【参考方案1】:我不确定这是否可行,因为我自己没有对此进行测试,但我认为您想使用return false
,这应该可以防止默认事件行为。你也可以试试 event.stopPropagation() 和 return false。
在 Mozilla 开发者网络https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XUL/Tutorial/More_Event_Handlers#Prevent_Default_Action 上有更多信息。我在此页面中感到困惑的是这句话中“属性侦听器”的精确定义:
或者,对于属性事件侦听器,您可以只从代码中返回 false。
这个问题的前两个答案也最相关:
event.preventDefault() vs. return false
【讨论】:
谢谢,但它不起作用。能不能用手机浏览器访问www.zhihu.com
,然后把一些42字以上的答案复制到备忘录中,可以找到版权。
我没有 iPhone :|以上是关于用户在移动浏览器中复制网页内容时如何自动添加版权?的主要内容,如果未能解决你的问题,请参考以下文章