当用户在移动浏览器中复制 Web 内容时,如何自动添加版权
How to auto add copyright when user copy the web content in mobile browsers?
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);
上面的代码可以在PC浏览器上运行,但在移动浏览器上不起作用。我已经测试了问题event.preventDefault();
.但是没有这个,我的函数将没有意义。有人可以帮助我吗?
我不确定这是否有效,因为我自己没有测试这个,但我认为你想使用 return false
,它应该防止默认事件行为。你也可以尝试 event.stopPropagation() 和返回 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
相关文章:
- 如何将新用户自动添加到AddThis服务以设置分析服务
- HTML图像未加载(自动添加内联css和属性)
- JavaScript功能不会自动添加具有价格的文本框
- 如何自动添加target=“_空白“;仅限于外部链接
- 自动添加然后POST的HTML表单
- 将按钮自动添加到行表中
- 为什么我的 init() 函数没有运行?(安装 Firefox 扩展时自动添加工具栏按钮,但仅在首次运行时)
- 浏览器会自动添加-Tag,而无需JavaScript
- 当用户在移动浏览器中复制 Web 内容时,如何自动添加版权
- 在javascript中自动添加带有十进制值的金额
- 如何在火狐中删除自动添加的脚本
- 是否可以阻止requireJS自动添加.js文件扩展名
- 整页.js:如何自动添加下一节或上一节的名称
- 如何运行新窗口.打开并自动添加 Ctrl 键
- 如何在函数调用中自动添加参数
- 自动添加Facebook社交插件:“喜欢”或“关注”
- 删除自动添加的 xmlns 属性
- 自动添加尼沃灯箱
- 将文本自动添加到mailto:link中加载的电子邮件中
- 如何通过输入自动添加数字