找回密码
 立即注册

QQ登录

只需一步,快速开始

lin123

最新发帖
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-3-29 13:37:30
37#
不太明白您说的,这个只是一个替换,为什么会导致您输入模式变换了,您要不把代码抽离成一个简单的可以重现问题的demo,我这边帮您看一下。
回复 使用道具 举报
lin123
中级会员   /  发表于:2018-3-28 18:15:35
36#
ClarkPan 发表于 2018-3-28 17:47
您好:
结果是这样的imeMode本身就是css3中的ime-mode
这个属性只支持IE和火狐浏览器,在chrome,opera中 ...

额,影响到功能了
editor.onkeyup = function(event) {
this.innerText = this.innerText.replace(/[\u4e00-\u9fa5]/g, '').replace(/\D/g, '');
}
这段代码导致输入模式变成insert模式了,生成的字符串全是反方向的
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-3-28 17:47:58
35#
本帖最后由 ClarkPan 于 2018-3-28 18:00 编辑

您好:
结果是这样的imeMode本身就是css3中的ime-mode
这个属性只支持IE和火狐浏览器,在chrome,opera中是不支持的。
另外发现一个问题,因为V11的弹出框改成div的实现方式了,这样ime-mode就完全不生效了(火狐也不生效),目前这块如何修改还需要进行讨论,很可能这个接口会被废弃掉,因为在各个浏览器效果不同。不过这个应该不会影响您的功能,给您的demo中,中文输入会被判断并清除的

model_v11.0.1.html

3.18 KB, 下载次数: 350

回复 使用道具 举报
lin123
中级会员   /  发表于:2018-3-28 14:12:05
34#
ClarkPan 发表于 2018-3-27 18:50
第一个问题:
可以的,3就是 GC.Spread.Sheets.RangeChangedAction.paste的枚举值
第二个问题我需要调研 ...

你好,请问怎么样了?
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-3-27 18:50:33
33#
第一个问题:
可以的,3就是 GC.Spread.Sheets.RangeChangedAction.paste的枚举值
第二个问题我需要调研一下这块,明天给您回复。
回复 使用道具 举报
lin123
中级会员   /  发表于:2018-3-27 15:41:59
32#
本帖最后由 lin123 于 2018-3-27 16:13 编辑
ClarkPan 发表于 2018-3-27 12:12
您好:

调查结果是这样的,内部拷贝走的是内部逻辑没有调用剪切板所以会拿到空值。这里有一点不太好的地 ...

您好,
1、

已成功的把原本监听ClipboardPasting事件改为监听RangeChanged事件,可以根据黏贴位置的类型再改值了。
但是我的判断是args里面的action=3就是黏贴,不知道这样对不对?什么情况下可确定是黏贴
sheet.bind(GC.Spread.Sheets.Events.RangeChanged, function(e, args) {
   var action = args.action;
   if (3 == action) {//为黏贴类型

          //处理
}
2、

然后发现禁止输入法没有效果
sheet.getRange(-1, 3, -1, 1).imeMode(GC.Spread.Sheets.ImeMode.disabled);

回复 使用道具 举报
lin123
中级会员   /  发表于:2018-3-27 15:09:53
31#
ClarkPan 发表于 2018-3-27 12:12
您好:

调查结果是这样的,内部拷贝走的是内部逻辑没有调用剪切板所以会拿到空值。这里有一点不太好的地 ...

您好,正在尝试调试RangeChanged事件,然后出现一个问题,设置了禁止输入法选项,结果没有效果?输入法还是可以用
sheet.getRange(-1, 3, -1, 1).imeMode(GC.Spread.Sheets.ImeMode.disabled);
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-3-27 12:12:56
30#
您好:

调查结果是这样的,内部拷贝走的是内部逻辑没有调用剪切板所以会拿到空值。这里有一点不太好的地方是我们在ClipboardPasting事件中拿不到fromRange,从而拿不到被拷贝的信息。这个应该属于需求,我已经向相关部门进行反馈了。
目前解决方法是,不用ClipboardPasting事件,监听RangeChanged事件,在事件中可以拿到粘贴的范围,从而通过getRange遍历获取其中的信息进行判断。并且RangeChanged中的action可以获得这个事件触发的原因,其中判断是粘贴在触发相关逻辑。
RangeChanged相关参考:
http://help.grapecity.com/spread ... angeChanged_EV.html
其中action的枚举请参考:
http://help.grapecity.com/spread ... eChangedAction.html
回复 使用道具 举报
lin123
中级会员   /  发表于:2018-3-27 11:38:04
29#
ClarkPan 发表于 2018-3-26 18:13
因为spreadjs又两套复制粘贴,分别对应内部和外部的复制,ctrl+c ctrl+v走的是外部复制逻辑(当然外部复制也 ...

版主,情况怎么样啦
回复 使用道具 举报
lin123
中级会员   /  发表于:2018-3-26 18:18:43
28#
ClarkPan 发表于 2018-3-26 18:13
因为spreadjs又两套复制粘贴,分别对应内部和外部的复制,ctrl+c ctrl+v走的是外部复制逻辑(当然外部复制也 ...

好的,麻烦你了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部