我正在使用我的CRM解決方案,其中包含一些JS Web資源,它應該在帳戶實體上添加新按鈕(它們放置在表單主體中)。我也做了一個新的CRM主題。使用JavaScript獲取CRM主題顏色
是否有任何JavaScript功能從該主題獲取顏色,所以我可以將它用於我的按鈕?
當我從主題獲得的顏色發生變化時,自動更改按鈕顏色的目標被更改,無需更改我的代碼。
我正在使用我的CRM解決方案,其中包含一些JS Web資源,它應該在帳戶實體上添加新按鈕(它們放置在表單主體中)。我也做了一個新的CRM主題。使用JavaScript獲取CRM主題顏色
是否有任何JavaScript功能從該主題獲取顏色,所以我可以將它用於我的按鈕?
當我從主題獲得的顏色發生變化時,自動更改按鈕顏色的目標被更改,無需更改我的代碼。
可以使用CRM REST Builder創建下面的代碼將返回默認值(即使用)主題:
var req = new XMLHttpRequest();
req.open("GET", Xrm.Page.context.getClientUrl() + "/api/data/v8.0/themes?$filter=isdefaulttheme eq true", true);
req.setRequestHeader("OData-MaxVersion", "4.0");
req.setRequestHeader("OData-Version", "4.0");
req.setRequestHeader("Accept", "application/json");
req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
req.setRequestHeader("Prefer", "odata.include-annotations=\"OData.Community.Display.V1.FormattedValue\"");
req.onreadystatechange = function() {
if (this.readyState === 4) {
req.onreadystatechange = null;
if (this.status === 200) {
var results = JSON.parse(this.response);
for (var i = 0; i < results.value.length; i++) {
var themeid = results.value[i]["themeid"];
}
}
else {
alert(this.statusText);
}
}
};
req.send();
您還可以使用的WebAPI用以下網址:
HTTP( s)://SERVER/ORG/api/data/v8.0/themes?$ filter = isdefaulttheme eq true
主題信息存儲在背景中的一個名爲「主題」的實體中。該實體擁有不同UI元素的所有十六進制代碼。您可以使用SDK/JavaScript查詢此實體並獲取有關特定元素的信息。
使用REST:http://contoso.com/api/data/v8.0/themes
而且閱讀十六進制代碼:"controlborder":"#000000","controlshade":"#000000"
謝謝大家的答案。它幫助我找到了解決這個問題的方法。
在此期間我已經建立一種多方式使用XRM服務工具包,以獲得從主題顏色(你必須安裝XRMServiceToolkit使用這一解決方案。Here是說明如何做到這一點。 它的工作原理,我想牛逼如果有人發現它有用,請與你分享。
我也想陳述我是CRM的新手,所以如果有一個理由不使用這個功能,或者有一種方法來改善它,我會很高興收到有關這方面的反饋意見
這是我所做的功能,我用它來檢索全局鏈接顏色,但你可以得到你想要的任何顏色:
function getColorFromTheme()
{
var color ;
XrmServiceToolkit.Rest.RetrieveMultiple(
"ThemeSet",
"",
function (results) {
if (results.length >= 1)
for (var i = 0; i < results.length; i++) {
if(results[i].IsDefaultTheme===true)
color=results[i].GlobalLinkColor;
}
},
function (error) {
alert(error.message);
},
function onComplete() {
},
false
);
return color;
};
我已經在我的函數(簡單複製/粘貼)中實現了此代碼,還導入了CRM REST生成器以發出我自己的請求,但我沒有得到任何回覆。還有什麼要做的嗎? –
您是否包含標題:'Accept':'Application/json'。如果你會忘記,響應中沒有數據。 –