在Salesforce的开发中,有时候需要在对象中插入记录,其中有的字段需要插入Html,但是对于输入Html的域,大多数框架和网站都需要做Html的转义处理,防止XSS或者SQL注入攻击。有时候我们却需要取消这个Html转义的保护机制,考虑到有些需求,比如:博客网站,一些需要发表文章的网站,一般会给用户提供一个Html编辑器进行文章的编辑,最后存入数据库,而用户玩玩需要对文章的字体大小颜色等等进行订制,于是Html编辑器返回的文章便是一大串带Html代码的字符,存入数据库后,我们又需要读取出来,此时也不需要Html的保护,那么在Salesforce中我们可以如何做到这点。

1。   首先是InputField输入的验证,对于这种输入框,如果我们不需要转义,可以通过’html-’前缀来取消。

在Apex的文档中我们可以找到这么一段对于InputField的解释 This component supports HTML pass-through attributes using the "html-" prefix. Pass-through attributes are attached to the generated<input>tag. 但是文档中却找不到这样的一个例子,不过我们还是可以知道要表达的意思:

<apex:inputfield value="{!c.FirstName}" html-data-val="true"/>

对于上面的一段代码,如果不使用html-data-val=”true”,则便是默认的对输入框的值进行转义(如果里面有包含Html代码的话)。通过这个html-前缀,便关闭了这个输入框的转义机制。

2 。  在@RemoteAction标签的函数里面,有时候需要通过js请求控制器的函数,然后获取包含Html代码的字符串,但是这个也会被转义。

@RemoteAction
public static String RsMsg(String arg)
{
return '<p>Test</p>';//model.Remark__c;
}

js函数回调alert的结果如下:

被转义了,这个显然不是我们想要的结果,想要搞定这个问题,如下:我们需要在调用该RemoteAction函数带上{escape: false}这个参数

<script type="text/javascript">
function GetMsg()
{
CreateOrEditTestController.RsMsg(
"我是参数",
function(result,event)
{
if(event.status)
{
debugger;
alert(result);
$("#ShowMsg").append(result);
}
}
,
{escape: false}
);
}
</script>

默认的escape都是true,把这个参数赋个false,便可以:

Salesforce中Html的转义,InputField和RemoteAction的更多相关文章

  1. 在Salesforce中向外公布Service去创建Lead,并且用Asp.Net去调用此Service

    1):在Salesforce中如何配置,向外公布此Service,请看如下链接: http://www.shellblack.com/marketing/web-to-lead/ 2):如何在Asp. ...

  2. 在Salesforce中为Object创建Master-Detail(Child-Relationship)关联关系

    在Salesforce中可以将两个Object建立起一对多的关联关系,本篇文章就简单的叙述一下将两个Object(EricSunObj & EricSunObjC)设置成Master-Deta ...

  3. 在Salesforce中创建Approval Process

    在Salesforce中可以创建Approval Process来实现审批流程的功能,实际功能与我们常说的Workflow很相似,具体的设置步骤如下所示 1):选择对应的Object去创建对应的App ...

  4. salesforce 零基础开发入门学习(十四)salesforce中工厂模式的运用

    提到工厂模式,想必大家都很熟悉,工厂模式作为一种设计模式,同样在salesforce中适用. 举一个例子,笔作为基类,可以有钢笔,铅笔,圆珠笔等等.有一个笔的工厂,当你向它要钢笔,它就会生产一支钢笔; ...

  5. 在Salesforce中对某一个Object添加自定义的Button和Link

    在Salesforce中可以对某一个Object添加自定义的Button和Link,来完成特定的逻辑过程,接下来以一个简单的实例来描述整个处理流程,实现的基本功能和我另外一篇文章中描述的功能是一致的( ...

  6. 在Salesforce中可以对某一个Object的Standard Button或Link进行重写

    在Salesforce中可以对某一个Object的Standard Button或Link进行重写,来实现我们特定的逻辑过程,比如:在删除某个Object之前要判断该Object的某个Field的状态 ...

  7. 在Salesforce中调用外部系统所提供的的Web Service

    这里需要提供外部service所对应的WSDL文件(Salesforce只支持从本地上传),并且提供的WSDL文件有如下两点要求: 1):wsdl 文件只能有一个binding,Salesforce是 ...

  8. 在Salesforce中添加Workflow Rule

    在Salesforce中可以添加Workflow Rule来执行特定的动作,比如说:当Object的某个字段发生变化时,根据变化的值去修改其他field,和Trigger的功能很类似,不过Trigge ...

  9. 在Salesforce中对某一个Object添加 Validation Rule

    在Salesforce中可以对某一个Object添加相应的 Validation Rule 来进行一个全局的条件判断,比如满足什么样的条件的修改允许提交,不满足的要提示相应的错误信息. 要创建一个Va ...

随机推荐

  1. MathType中输入不了汉字如何处理

    MathType作为一款常见的数学公式编辑器在编辑数学公式时,不仅可以输入英文字符,对中文也有很好的兼容性.但是有些用户在使用MathType编辑公式时,发现一些汉字是输入不进去的,这个时候我们就需要 ...

  2. jenkins发布docker到mesos

    1.前提是装好git.SSH.maven插件 2.jenkins新建一个项目,配好git拉取代码.maven编译构建(gradle构建也行,这不重要) 3.SSH Server,填写需要传输的jar文 ...

  3. Oracle的优化器的RBO和CBO方式

      1.基于规则的优化方式(Rule-Based Optimization,简称为RBO)       优化器在分析SQL语句时,所遵循的是Oracle内部预定的一些规则,对数据是不敏感的.它只借助少 ...

  4. 运维角度浅谈:MySQL数据库优化

    日志君导读: 一个成熟的数据库架构并非一開始设计就具备高可用.高伸缩等特性的.它是随着用户量的添加,基础架构才逐渐完好. 作者:zhenliang8.本文转自51CTO博客,点击原文阅读查看网页版文章 ...

  5. JavaScript作用域原理——作用域根据函数划分

    一.一个for实例 <p id="scope3" style="color:red"></p> var pscope3 = docume ...

  6. java解析xml字符串(用dom4j)

    package com.smsServer.Dhst; import java.util.HashMap; import java.util.Iterator; import java.util.Ma ...

  7. 【BZOJ3436】小K的农场 差分约束

    [BZOJ3436]小K的农场 Description 背景 小K是个特么喜欢玩MC的孩纸... 描述 小K在MC里面建立很多很多的农场,总共n个,以至于他自己都忘记了每个农场中种植作物的具体数量了, ...

  8. List<Integer>.remove()的一个小细节

    不废话,先上代码: ArrayList<Integer> col = new ArrayList<Integer>(); System.out.println("In ...

  9. ECharts使用(1)(转载)

    转载自http://www.cnblogs.com/Olive116/p/3634480.html 1.  EChart最新的文档目录. 首先创建一个解决方案,目录如下: 之前的一篇文章中讲到如果要使 ...

  10. 160530、memcached集群(spring集成的配置)

    第一步:在linux机或windows机上安装memcached服务端(server) linux中安装memcached:centos中命令 yum -y install memcached 如果没 ...