找回密码
 立即注册

QQ登录

只需一步,快速开始

素描

注册会员

4

主题

9

帖子

37

积分

注册会员

积分
37
最新发帖
素描
注册会员   /  发表于:2016-10-10 10:19  /   查看:3353  /  回复:1
关于spreadjs在IE11浏览器中,
如果使用了MutationObserver监听,
会导致spreadjs单元格无法编辑。
导致无法编辑的代码如下
  1. <p>var observer = new MutationObserver(function(){</p><p>     //.....</p><p>});

  2. observer.observe(document.body, {
  3.       'childList': true,
  4.       'arrtibutes': true,
  5.       'subtree': true,
  6.       'characterData': true
  7. });
  8. </p>
复制代码


错误提示如下
  1. SCRIPT16389: 未指明的错误。
  2. gcspread.sheets.all.9.40.20153.0.min.js, 行13 字符193325
复制代码
请问有无办法解决

1 个回复

倒序浏览
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2016-10-10 17:54:31
沙发
您好,这个是IE11 的已知bug,使用MutationObserver后,当在mousedown和keydom事件中向dom添加textarea 然后修改selectstart会抛异常。

解决方案就是在添加编辑框时候进行try catch

  1. var oldFunction = GcSpread.Sheets.TextCellType.setEditorValue;

  2. GcSpread.Sheets.TextCellType.prototype.setEditorValue = function(editorContext, value, context){
  3.     var self = this, args = arguments;
  4.     try{
  5.         oldFunction.call(self,args);
  6.     }
  7.     catch(e){
  8.         //do nothing
  9.     }
  10. }
复制代码

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部