Dynamic 365 CRM openEntityForm 或 windows.open 以 html 作为参数
Dynamic 365 CRM openEntityForm or windows.open with html as parameter
我有电子邮件模板,我 'parse' 并将(从当前潜在客户表单)作为参数发送到新电子邮件表单(从 JavaScript)。
var parameters = {};
parameters["subject"] = 'Subject name';
parameters["description"] = '<font face="Tahoma, Verdana, Arial" size=2 style="display:inline;"><br></font>';
Xrm.Utility.openEntityForm("email", null, parameters);
或
let serverUrl = "https://companyname.crm4.dynamics.com";
let extraqs = "subject=Subject name";
extraqs += '&description=<font face="Tahoma, Verdana, Arial" size=2 style="display:inline;"><br></font>';
let targetUrl = serverUrl.replace(/\/$/, "") + "/main.aspx?etn=email&pagetype=entityrecord&extraqs=" + encodeURIComponent(extraqs);
parent.open(targetUrl);
或
let serverUrl = "https://companyname.crm4.dynamics.com";
let extraqs = 'subject=' + encodeURIComponent('Subject name');
extraqs += '&description=' + encodeURIComponent('<font face="Tahoma, Verdana, Arial" size=2 style="display:inline;"><br></font>');
let targetUrl = serverUrl.replace(/\/$/, "") + "/main.aspx?etn=email&pagetype=entityrecord&extraqs=" + extraqs;
parent.open(targetUrl);
每次我想发送任何看起来像 html 标签的东西(任何包含“<”或“>”符号的东西)时都会出错。
是否可以通过参数发送我的 html 标记,这是否存在任何安全问题?
这可以用 encodeURIComponent
/ decodeURIComponent
解决,像这样:
parameters["description"] = encodeURIComponent('<html here>');
另一边:
var description = decodeURIComponent(incomingParameterHere);
以这种方式,您的 HTML 作为一个简单的字符串传递。这可以(应该?)应用于通过 JS 传递的所有字符串。
我发现要包含 html 标签的描述需要定义 pId 和 pType 值(想知道这是设计使然还是错误)
var entityFormOptions = {
entityName: "email"
};
var emailFormParams = {
subject: "subject",
description:"<p1>html here</p1>",
//sets the regarding - needed for description to be html
pId:"{GUID}",
pType:112 //objectTypeCode for the party
};
Xrm.Navigation.openForm(entityFormOptions, emailFormParams);
我有电子邮件模板,我 'parse' 并将(从当前潜在客户表单)作为参数发送到新电子邮件表单(从 JavaScript)。
var parameters = {};
parameters["subject"] = 'Subject name';
parameters["description"] = '<font face="Tahoma, Verdana, Arial" size=2 style="display:inline;"><br></font>';
Xrm.Utility.openEntityForm("email", null, parameters);
或
let serverUrl = "https://companyname.crm4.dynamics.com";
let extraqs = "subject=Subject name";
extraqs += '&description=<font face="Tahoma, Verdana, Arial" size=2 style="display:inline;"><br></font>';
let targetUrl = serverUrl.replace(/\/$/, "") + "/main.aspx?etn=email&pagetype=entityrecord&extraqs=" + encodeURIComponent(extraqs);
parent.open(targetUrl);
或
let serverUrl = "https://companyname.crm4.dynamics.com";
let extraqs = 'subject=' + encodeURIComponent('Subject name');
extraqs += '&description=' + encodeURIComponent('<font face="Tahoma, Verdana, Arial" size=2 style="display:inline;"><br></font>');
let targetUrl = serverUrl.replace(/\/$/, "") + "/main.aspx?etn=email&pagetype=entityrecord&extraqs=" + extraqs;
parent.open(targetUrl);
每次我想发送任何看起来像 html 标签的东西(任何包含“<”或“>”符号的东西)时都会出错。
是否可以通过参数发送我的 html 标记,这是否存在任何安全问题?
这可以用 encodeURIComponent
/ decodeURIComponent
解决,像这样:
parameters["description"] = encodeURIComponent('<html here>');
另一边:
var description = decodeURIComponent(incomingParameterHere);
以这种方式,您的 HTML 作为一个简单的字符串传递。这可以(应该?)应用于通过 JS 传递的所有字符串。
我发现要包含 html 标签的描述需要定义 pId 和 pType 值(想知道这是设计使然还是错误)
var entityFormOptions = {
entityName: "email"
};
var emailFormParams = {
subject: "subject",
description:"<p1>html here</p1>",
//sets the regarding - needed for description to be html
pId:"{GUID}",
pType:112 //objectTypeCode for the party
};
Xrm.Navigation.openForm(entityFormOptions, emailFormParams);