Javascript padStart() 在警报框中正常工作,但在 Dynamics 365 CRM 中的电子邮件记录中不能正常工作

Posted

技术标签:

【中文标题】Javascript padStart() 在警报框中正常工作,但在 Dynamics 365 CRM 中的电子邮件记录中不能正常工作【英文标题】:Javascript padStart() working correctly in alert box but not in email record in Dynamics 365 CRM 【发布时间】:2022-01-08 09:51:39 【问题描述】:

我创建了一个操作,该操作从附加在字符串生成器中的 CRM 记录中获取值。在正在构建的字符串中,我需要在字符串之间添加相当于 10 个空格的内容,如下所示:

for(var i = 0; i < ltRecordSnsAndLocations.length; i++)

    if(i < ltRecordSnsAndLocations.length - 1)
    
        injectionString += (i+1).toString() + ". " + ltRecordSnsAndLocations[i][0].toString() + String("System Location:  ").padStart(String("System Location:  ").length+10,' ') + ltRecordSnsAndLocations[i][1].toString() + "\n";
    

下面的警告框中的输出似乎可以正常工作:

如您所见,数字项目符号值和我想要的系统位置之间存在正确的填充。

如前所述,我在 CRM 中创建了一个操作,该操作将此字符串输入到由变量 injectionString 表示的电子邮件记录中,如下所示:

但是,当工作流启动并填充传入的injectionString 时,它会忽略padStart,如下所示:

我已经为此奋斗了一段时间。需要注意的是,我在 Chrome 和 Edge 浏览器中都进行了测试。非常感谢您对此提供任何帮助。

【问题讨论】:

我在贴出的代码中没有看到 padStart 警告框使用纯文本,它保留了空白。将文本添加到 html 元素时,额外的空白将被截断为视图上的单个字符。将white-space CSS 规则添加到元素可能会有所帮助? @danh 它在那里:String("系统位置:").padStart(String("系统位置:").length+10,' ') 对不起 - 我现在看到了。旁注:循环中的一些中间字符串变量将有助于调试并帮助未来的代码读者。 【参考方案1】:

以下博文为我的问题提供了解决方案:https://blog.hubspot.com/website/html-space

在 HTML 中添加空格的最简单方法(除了按空格键) 是与不间断的空间实体,写为&amp;nbsp;&amp;#160;。 多个相邻的不间断空间不会被 浏览器,让您“强制”单词之间的几个可见空格或 其他页面元素。

【讨论】:

以上是关于Javascript padStart() 在警报框中正常工作,但在 Dynamics 365 CRM 中的电子邮件记录中不能正常工作的主要内容,如果未能解决你的问题,请参考以下文章

全栈之路-前端javascript基础知识3

全栈之路-前端javascript基础知识3

padStart()方法,padEnd()方法

js字符串补全 padStart padEnd

字符串扩展-padStart()和padEnd()

Angular 4 使用 ES2017(例如 string.prototype.padStart)