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
进行解析。