SAP Webide系列(8)- 修复代码区域录入汉字异常(续篇)

 一、背景

        在基于本系列第一篇文章,修复的SAP Webide中文录入异常现象,持续跟踪发现仍有其他方面的问题存在。在正常录入汉字时是没问题,但是在选中部分内容后,想要替换录入汉字时会执行异常导致弹出多个报错提示框,如下图所示:

二、解决步骤

本次修复基于SAP Webide原版压缩版中的ace.js,忽略本系列文章一中的升级包。

        需修改的文件路径:WebIDE\plugins\com.sap.webide.orionplugin_1.53.9\webide\resources\sap\watt\ideplatform\plugin\aceeditor\control\lib\ace-noconflict\ace.js

        修改后的ace.js文件见:https://download.youkuaiyun.com/download/qq_28872573/90539438,也可参考下文自行修复。

2.1、定义全局变量

        定义一个Bool类型的全局变量bIsChineseInputting,记录是否正在执行输入法的中文录入操作

var bIsChineseInputting = false; //added by husq on 20250327

 2.2、录入汉字过程中打标记

        在onCompositionStart、onCompositionUpdate方法中,将标识bIsChineseInputting设置为true。特别注意onCompositionUpdate方法中需要判断inComposition字段,因为正常录入字母也会触发此方法,加判断用以避免干扰正常录入字母的情况。

//onCompositionStart方法开头追加
bIsChineseInputting = true //added by husq on 20250327


//onCompositionUpdate方法开头追加
if(inComposition){
	bIsChineseInputting = true; //added by husq on 20250327
}

 2.3、录入汉字结束触发更新操作

        在onCompositionEnd方法结尾手动触发文字更新操作,并将bIsChineseInputting标识重置为false。

/*** added by husq on 20250327 (Begin) ***/
bIsChineseInputting = false;
sendText(text.value);
resetValue();
/*** added by husq on 20250327 (End) ***/

 2.4、原更新方法加判断阻止更新

        在onInput方法添加bIsChineseInputting标识判断,如果为true代表正在输入汉字中,需return用以阻止更新,并将bIsChineseInputting标识重置为false。

/*** added by husq on 20250327 (Begin) ***/
if (bIsChineseInputting){
    bIsChineseInputting = false;
	return;
}
/*** added by husq on 20250327 (End) ***/

三、效果展示

        在完成上述修改后,重启SAP Webide后,录入汉字终于彻底正常了。

👍点赞,您的支持是我创作的动力!

⭐️收藏,您的青睐是我前行的方向!

✏️评论,您的意见是我成长的财富!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

聆听-往昔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值