代码之家  ›  专栏  ›  技术社区  ›  Milos

Dynamic 365 CRM openEntityForm或windows。以html作为参数打开

  •  0
  • Milos  · 技术社区  · 8 年前

    我有一个电子邮件模板,我“解析”并(从当前潜在客户表单)将其作为参数发送到新的电子邮件表单(从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标记吗?这有安全问题吗?

    2 回复  |  直到 8 年前
        1
  •  4
  •   Alex    8 年前

    这是可以解决的 encodeURIComponent / decodeURIComponent 这样地:

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

    另一方面:

    var description = decodeURIComponent(incomingParameterHere);
    

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

        2
  •  0
  •   Raj Rao    7 年前

    我发现,为了使描述包含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);