关于前端:SAP-UI5-应用的标准-Theme-和自定义-Theme-的加载讨论

6次阅读

共计 1075 个字符,预计需要花费 3 分钟才能阅读完成。

SAP UI5 利用的初始主题能够硬编码在应用程序中(在加载 SAPUI5 的疏导程序的脚本标签中)或在加载 SAPUI5 之前定义的 JS 配置对象中,例如上面的例子:

<script id="sap-ui-bootstrap" 
    type="text/javascript"
    src="resources/sap-ui-core.js"
    data-sap-ui-theme="sap_belize">
</script>

这种硬编码的设置具备最低的优先级。

咱们能够应用 url parameter,html?sap-ui-theme=sap_belize,来笼罩这个硬编码配置。

如果应用 UI 主题设计器来定义您本人的自定义主题,能够将自定义主题的地位作为服务器相对路径附加到 sap-ui-theme 参数,由 @ 符号分隔:http://myserver.com/sap/myapp/?sap-ui-theme=my-theme@/sap/public/bc/themes/~client-111

只管能够指定残缺的 URL,但该框架将仅应用 URL 的门路信息来避免基于 CSS 的攻打,否则可能会通过从歹意服务器援用 CSS 进行攻打。在更简单的状况下,例如,如果 UI 主题设计器的根底构造在独自的服务器上运行,则能够应用 Web dispatcher 将两个服务器组合在一个命名空间中,或者应用办法 sap.ui.getCore.applyTheme , 为自定义利用设置残缺的 URL。

UI theme designer 的根底构造将多种技术的主题存储在同一地位,每个技术都在其本人的子目录中(UI5/ SAPUI5)。

其余 SAP 产品(如 SAP Enterprise Portal)仅将公共根 URL 附加到 sap-theme 参数。因而,SAPUI5 将文件夹 UI5/ 附加到 sap-theme 参数中定义的任何给定门路。

能够应用办法 sap.ui.getCore.applyTheme 即时切换主题。

应用程序状态不会失落,并且没有服务器 network 往返(加载 CSS 文件除外,如果未缓存到浏览器中)。

要加载内部自定义主题,能够通过在页面中动态申明或应用 Core.setThemeRoot() 办法来设置此主题。这十分相似于对位于不同地位的库应用 registerModulePath()。

通过 sap-ui-theme/sap-theme URL 参数配置带有 themeRoot URL 的主题时,存在一些平安方面的限度。默认状况下,与以后页面不同起源的相对 URL 被 stripped off .

Path segment 将绝对于以后页面的 origin 进行解析。

正文完
 0