尽管 Arun Vinoth 的回答为我指明了正确的方向,但我很庆幸,这是一个完整的答案,对于以执行上下文作为第一个参数的表单,您需要将“form_onload”称为“onload”。
function form_onload(executionContext) {
var formContext = executionContext.getFormContext();
var wrControl = formContext.getControl("WebResource_Ampelfarbe");
if (wrControl) {
wrControl.getContentWindow().then(
function (contentWindow) {
contentWindow.showAmpelfarbe(Xrm, formContext);
}
)
}
}
其中“WebResource_Ampelfarbe”需要是您的 Web 资源的名称,“showAmpelfarbe”是您要调用的 html Web 资源中的函数。
以下是选项卡“源”的 html Web 资源的内容,它将根据内容创建一个彩色框。
<html><head>
<script>
function showAmpelfarbe(xrm, formContext) {
// Optionally set Xrm and formContext as global variables on the page.
window.Xrm = xrm;
window._formContext = formContext;
// Add script logic here that uses xrm or the formContext.
var ampel_value = formContext.getAttribute("il_statuscolor").getValue();
ampel_color = '';
if (ampel_value == 100000000) {
ampel_color = "red";
}else if (ampel_value == 100000001) {
ampel_color = "yellow";
}else if (ampel_value == 100000002) {
ampel_color = "green";
}
document.body.style.backgroundColor = ampel_color;
}
</script>
<meta></head><body onfocusout="parent.setEmailRange();" style="overflow-wrap: break-word;">