botframework - MS Bot Framework 类名称和标签 ID 已更改
问题描述
我一直在使用 MS bot 框架 - 在我的项目中使用聊天机器人,并且我在 Bot 的 UI 和其他功能中进行了一些自定义。
我的大部分自定义都是基于聊天窗口的类名和标签 ID
示例:
我已经自定义了聊天输入区域的占位符文本,如下所示。
document.querySelectorAll('[aria-label="Sendbox"]')[0].placeholder = "Type your question";
它工作了一段时间,今天突然抛出一个错误,调试后我发现标签名称已从Sendbox更改为Message input box。因此我需要将我的代码更改为
document.querySelectorAll('[aria-label="Message input box"]')[0].placeholder = "Type your question";
同样,类名在很多地方也发生了变化,一个例子是,之前机器人消息的类名包含内容,现在改为markdown
所以我想知道,
- 为什么变了,
- 基于它将发生的变化,重要的是
- 如何避免这些变化
解决方案
不幸的是,您受制于网络聊天。类(和其他组件)可能会发生变化,网络聊天团队确实记录了这些变化,因此不应完全依赖这些变化。
示例02.branding-styling-and-customizing/b.idiosyncratic-manual-styles演示了开发人员如何通过网络聊天的“createStyleSet”实现自定义。此方法是非标准的,并且被网络聊天团队认为不是最佳实践。但是,它适用于需要通过其默认样式选项进行 Web Chat 提供的特定更改之外的开发人员。
不建议这样做,因为发布新版本的网络聊天时可能会发生重大更改。
对于任何依赖网络聊天及其内部工作的外部项目(例如您的项目)来说,这同样适用。(公平地说,任何依赖的应用程序都可能发生这种情况。网络聊天团队至少很乐意通知您。)
至于为什么类和类似的变化......任何数量的原因。最有可能的是,有一个或多个新特性被引入。使用可能在其他地方使用或可能包含相关样式或功能的相同类在给定实例中可能不再可行或不合适。
希望有帮助!
推荐阅读
- ios - 有没有办法用 iOS 应用程序的自定义纹理或图案填充 HERE 地图上的多边形?
- android - 我有一个想法,我只需要有人为我指明正确的方向即可开始
- python - Selenium Instagram 登录:“WebElement”对象没有属性“send_Keys”
- reactjs - Redux 没有在功能组件中分派我的操作类型
- javascript - 将 req.body 数据快速传递到 Stripe 路由中进行支付
- string - Actionscript 3 错误 1176:具有静态类型 Function 的值与可能不相关的 int 类型之间的比较
- html - 所有设备/断点上的店面主题移动布局
- sequelize.js - Sequelize 和 nestJs 中的 LocalizedColumn 装饰器
- terraform - 属性“路由”的值不合适:元素 0:属性
- javascript - 如何遍历数组并使用下一个请求中的值(每次都有不同的值) - 邮递员