SAP UI5 应用的标准 Theme 和自定义 Theme 的加载讨论
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
进行解析。
相关文章
- SAP UI5 sap.ui.core.Element 的概要介绍
- SAP UI5 sap.ui.layout.Grid 控件宽度百分比的设置原理
- SAP 电商云 Spartacus UI 里的 ASM 模块启用的前置条件
- SAP UI5 第二代表达式语言的一些特性介绍
- SAP UI5 sap.ui.base.ManagedObject 的构造函数参数讲解
- SAP Commerce Cloud 里的 User 模型和 Restriction 的关系
- SAP UI5 sap.ui.Device.media.initRangeSet 方法的单步调试
- SAP UI5 OData 请求的自定义 HTTP header 设置方法
- 学会使用 SAP ABAP Application Log 在代码里添加应用日志记录功能试读版
- SAP BTP 的 ABAP Environment 和 CloudFoundry 环境的关系
- SAP ERP系统在企业内部控制方面有哪些独到之处?
- 使用 class sap.ui.core.UIComponent.createContent 创建 Component 实例
- 将Excel导入SAP数据库表详解编程语言
- SAP资产变动明细详解编程语言
- (转载整理)SAP ERP常用表详解编程语言
- SAP采购申请审批记录增强详解编程语言
- SAP选择屏幕字段设为单值还是区间详解编程语言
- SAP ALV demo—自用详解编程语言
- SAP 传输请求报错—-***在本系统中被修理(Object ****** is in repair status. Therefore, it cannot be imported).详解编程语言
- 在SAP标准程序上挂FORM并打印详解编程语言
- SSH远程重启Tomcat时无法找到JAVA_HOME也连接不上SAP详解编程语言
- SAP MM(物料管理)常用事务代码T-Code详解编程语言
- sap Merge change requests详解编程语言
- Sending email with attachment in SAP ABAP详解编程语言
- 比较:Oracle与SAP的对比(oracle和sap)
- SAP PI 配置soap web service详解编程语言
- Oracle与SAP权衡利弊比较之路(oracle与sap比较)