首页 > 解决方案 > 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

所以我想知道,

  1. 为什么变了,
  2. 基于它将发生的变化,重要的是
  3. 如何避免这些变化

标签: botframeworkcustomizationdirect-line-botframework

解决方案


不幸的是,您受制于网络聊天。类(和其他组件)可能会发生变化,网络聊天团队确实记录了这些变化,因此不应完全依赖这些变化。

示例02.branding-styling-and-customizing/b.idiosyncratic-manual-styles演示了开发人员如何通过网络聊天的“createStyleSet”实现自定义。此方法是非标准的,并且被网络聊天团队认为不是最佳实践。但是,它适用于需要通过其默认样式选项进行 Web Chat 提供的特定更改之外的开发人员。

不建议这样做,因为发布新版本的网络聊天时可能会发生重大更改。

对于任何依赖网络聊天及其内部工作的外部项目(例如您的项目)来说,这同样适用。(公平地说,任何依赖的应用程序都可能发生这种情况。网络聊天团队至少很乐意通知您。)

至于为什么类和类似的变化......任何数量的原因。最有可能的是,有一个或多个新特性被引入。使用可能在其他地方使用或可能包含相关样式或功能的相同类在给定实例中可能不再可行或不合适。

希望有帮助!


推荐阅读