不理解e.clipboardData,window.clipboardData进行逻辑判断的理由?

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)

阅读 1.6k
1 个回答

一般这种形式都是解决兼容性。
看了一下ClipboardEvent是有兼容问题的,而且标准的window也没有clipboardData这个属性。所以window.clipboardData这种写法很可能是某些浏览器特定的写法,比如ie

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题