Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用html作为参数的Dynamic 365 CRM openEntityForm或windows.open_Javascript_Dynamics Crm_Crm - Fatal编程技术网

Javascript 使用html作为参数的Dynamic 365 CRM openEntityForm或windows.open

Javascript 使用html作为参数的Dynamic 365 CRM openEntityForm或windows.open,javascript,dynamics-crm,crm,Javascript,Dynamics Crm,Crm,我有一个电子邮件模板,我将其“解析”并(从当前Lead表单)作为参数发送到新的电子邮件表单(从JavaScript) var参数={}; 参数[“主题”]=“主题名称”; 参数[“说明”]=“br>”; Xrm.Utility.openEntityForm(“电子邮件”,null,参数); 或 let serverUrl=”https://companyname.crm4.dynamics.com"; 让extraqs=“主题=主题名称”; Extraq+='&description='; 让

我有一个电子邮件模板,我将其“解析”并(从当前Lead表单)作为参数发送到新的电子邮件表单(从JavaScript)

var参数={};
参数[“主题”]=“主题名称”;
参数[“说明”]=“br>”;
Xrm.Utility.openEntityForm(“电子邮件”,null,参数);

let serverUrl=”https://companyname.crm4.dynamics.com";
让extraqs=“主题=主题名称”;
Extraq+='&description=
'; 让targetUrl=serverUrl.replace(/\/$/,“”)+“/main.aspx?etn=email&pagetype=entityrecord&extraqs=“+encodeURIComponent(extraqs); 打开(targetUrl);

let serverUrl=”https://companyname.crm4.dynamics.com";
让extrqs='subject='+encodeURIComponent('subject name');
extraqs+='&description='+encodeURIComponent('
'); 让targetUrl=serverUrl.replace(/\/$/,“”)+“/main.aspx?etn=email&pagetype=entityrecord&extraqs=“+extraqs; 打开(targetUrl);
每次我想发送任何类似html标记的内容(任何包含“”符号的内容)时都会出错


是否可以通过参数发送我的html标记,是否存在任何安全问题?

这可以通过
encodeURIComponent
/
decodeURIComponent
解决,如下所示:

parameters["description"] = encodeURIComponent('<html here>');

以这种方式,HTML作为一个简单的字符串传递。这可以(应该?)应用于通过JS传递的所有字符串。

这可以通过以下方式解决:

parameters["description"] = encodeURIComponent('<html here>');

以这种方式,HTML作为一个简单的字符串传递。这可以(应该?)应用于通过JS传递的所有字符串。

我发现了什么,为了描述包含html标记,它需要定义pId和pType值(不知道这是设计还是错误)

var entityFormOptions={
entityName:“电子邮件”
};
var emailFormParams={
主题:“主题”,
说明:“此处为html”,
//将描述所需的内容设置为html
pId:“{GUID}”,
p类型:112//objectTypeCode用于参与方
};
openForm(entityFormOptions,emailFormParams);

我发现了什么?为了让描述包含html标记,它需要定义pId和pType值(不知道这是设计还是错误)

var entityFormOptions={
entityName:“电子邮件”
};
var emailFormParams={
主题:“主题”,
说明:“此处为html”,
//将描述所需的内容设置为html
pId:“{GUID}”,
p类型:112//objectTypeCode用于参与方
};
openForm(entityFormOptions,emailFormParams);

我认为“Xrm.Utility.openEntityForm”在发送参数之前就已经完成了。非常感谢。我在上述问题中添加了另一个示例,使用“window/parent.open”而不是“Xrm.Utility.openEntityForm”,因为使用openEntityForm无法仅使用window.open在新选项卡中打开实体,这是可能的。你知道为什么它不起作用吗(有encodeURIComponent(extrqs))?我认为“Xrm.Utility.openEntityForm”在发送参数之前就可以做到这一点。非常感谢。我在上述问题中添加了另一个示例,使用“window/parent.open”而不是“Xrm.Utility.openEntityForm”,因为使用openEntityForm无法仅使用window.open在新选项卡中打开实体,这是可能的。你知道为什么它不工作吗(有encodeURIComponent(extraq))?
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);
parameters["description"] = encodeURIComponent('<html here>');
var description = decodeURIComponent(incomingParameterHere);
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);