js实现一个功能,复制网页信息的时候添加部分信息。
我看这样的代码
function handler(e) {
e.preventDefault();
var content = `${window.getSelection(0).toString()}
我需要添加的东西` ;
if(e.clipboardData) {
e.clipboardData.setData('text/plain', content);
}
else if(window.clipboardData){
return window.clipboardData.setData("text", content);
}
}
document.addEventListener('copy', handler);
不理解为何要if(e.clipboardData) , else if(window.clipboardData)
我测试了这样的简单代码也可以
function handler(e) {
e.preventDefault();
var content = `${window.getSelection(0).toString()}
我需要添加的东西` ;
e.clipboardData.setData('text/plain', content);
}
document.addEventListener('copy', handler);
做这样的逻辑判断的目的是什么?
if(e.clipboardData) , else if(window.clipboardData)
一般这种形式都是解决兼容性。
看了一下
ClipboardEvent
是有兼容问题的,而且标准的window
也没有clipboardData
这个属性。所以window.clipboardData
这种写法很可能是某些浏览器特定的写法,比如ie