合并的JavaScript字符串在sap.m.Dialog中导致语法错误

2020-09-23 22:59发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)嗨, 我有一个奇怪的JS错误,...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,

我有一个奇怪的JS错误,也许有人已经遇到了它,并且可以为我提供有关此问题的线索。

我正在为SAP EP编写FLP插件,实际上想做的很简单:我从我自己开发的自定义Java组件中获取JSON,并希望在sap.m中呈现其中的某些部分。 登录到FLP后,将对话框res sap.ui.core.HTML作为消息显示。 我的JSON响应有效,如下所示:

 {" messages":[{" beginDate":" CET Feb 01 08:00:00 CET 2018"," approved":true," messageType":" A"," endDate":" Thu Feb 28 15  :00:00 CET 2019"," active":" true"," id":" 2601"," text":"  asd 
<\/strong>

asdsad
<\/h1>"," lang":" de"," title":" Test"," autor":" user"},{" beginDate":" CET Feb 22 08:00:00 CET 2018", " approved":true," messageType":" S"," endDate":"周五3月30日CEST 2018"," active":" true"," id":" 2605"," text" :"

lorem ipsum。lorem ipsum。lorem ipsum。lorem ipsum。lorem ipsum。lorem ipsum。lorem ipsum。lorem ipsum。lorem ipsum。lorem ipsum。lorem ipsum。lorem ipsum。lorem ipsum。lorem ipsum。 lorem ipsum。lorem ipsum。lorem ipsum。lorem ipsum。lorem ipsum。lorem ipsum。lorem ipsum。<\/p>

lorem ipsum.lorem ipsum。lorem ipsum。<\/p>

lorem ipsum。< \/p>

lorem ipsum。lorem ipsum。lorem ipsum。lorem ipsum。lorem ipsum。lorem ipsum。lorem ipsum。lorem ipsum。lorem ipsum。<\/p>"," lang":" de"," title":"测试消息1"," autor":"用户"}]}

您已经注意到,它包含HTML标记,应该这样呈现。 我的FLP插件包含一个JS方法,该方法应该获取JSON并将其呈现在消息框中:

 var getSysMessagePopup = function(){
 var sUrl ="/irj/servlet/prt/prtrw/prtroot/xxx.MessagesComponent";
 $ .ajax({
   网址:sUrl,
   异步:错误,
   超时:10000,
   错误:function(){
    $ .sap.log.error("无法加载系统消息...");
   } .bind(this),
 成功:功能(数据,状态,jqXHR){
   var jsonMessages = [];
   if(typeof data!=='undefined'&& data.messages.length> 0){
   var计数器= 0;
   var content ='';
   for(var i = 0; i 
 

AJAX调用运行良好,但控制台中出现JS错误:

 SCRIPT5022:语法错误,无法识别的表达式:
 测试 asd 

asdsad

__________________________________________________________________________________________________________________
测试 消息1

lorem ipsum。 lorem ipsum。 lorem ipsum。 lorem ipsum。 洛雷姆 ipsum。 lorem ipsum。 lorem ipsum。 lorem ipsum。 lorem ipsum。 lorem ipsum。 洛雷姆 ipsum。 lorem ipsum。 lorem ipsum。 lorem ipsum。 lorem ipsum。 lorem ipsum。 洛雷姆 ipsum。 lorem ipsum。 lorem ipsum。 lorem ipsum。 lorem ipsum。 洛雷姆 ipsum。

lorem ipsum.lorem ipsum。 lorem ipsum。

lorem ipsum。

lorem ipsum。 lorem ipsum。 lorem ipsum。 lorem ipsum。 lorem ipsum。 lorem ipsum。 lorem ipsum。 lorem ipsum。 洛雷姆 ipsum。

__________________________________________________________________________________________________
文件:core-min-0.js,行:75,列:9079

不幸的是,我没有线索,"语法错误,无法识别的表达"试图告诉我什么,所以我不知道如何解决。 我发现我是否通过评论放弃了标题

内容+ =标题; 

输出,效果很好。

我无法在SCN上找到任何可比较的问题,正如您在JSON响应中看到的那样,fild"标题"不包含任何特殊内容,仅包含纯文本。 因此,最后我也不知道到底出了什么问题,也没有办法解决这个问题。 有人有主意吗? 谢谢

亲切的问候

(16.7 kB)
2条回答
ZJXianG
2020-09-23 23:33

谢谢,现在我明白了。 因此,实际原因是sap.ui.core.HTML的内容必须引人注目,并且必须被标记包围。 如果我细心阅读文档,我会知道的,因为它看上去很独特( https://sapui5.hana.ondemand.com/#/api/sap.ui.core.HTML/constructor ):

要显示的HTML内容,定义为字符串。
 内容通过调用新的jQuery(content)转换为DOM节点,因此对jQuery构造函数的任何限制也适用于HTML控件的内容。
 其中一些限制(可能还有其他限制!)是:
 内容必须包含在标记中,不支持纯文本。如果内容包含脚本标记,则将执行它们,但它们不会出现在结果DOM树中。 当包含的代码尝试查找相应的脚本标记时,它将失败。

我通过将标题包含在" alibi"标签中来更正了它,现在它可以工作了,再次感谢,

亲切的问候

一周热门 更多>