一般来说,在 ExtJS 应用程序上转义 HTML 的最佳方法是什么?

2024-02-14

我正在使用 ExtJS 开发一个 Web 应用程序来构建 GUI 并通过 RESTful Web 服务与服务器通信(返回的数据格式化为 JSON 对象)。
现在我在处理包含 HTML 标签、Javascript 代码的数据时遇到问题;因为当我将这些值设置为 Ext 表单、标签、输入字段时,它们会受到这些语法的影响。
我使用此函数将数据从模型对象加载到表单:

form.loadRecord(model);

我找到了转义 HTML 和 JS 的解决方案:使用

field.setValue(Ext.util.Format.htmlDecode(data)); 

但我认为这对于整个应用程序来说不是一个好的解决方案,因为开发人员必须做很多事情:检查所有输入字段、标签,并将该片段放入其中。毕竟,这并不是构建快速、健壮且可维护的应用程序的好方法。
那么,能否请您帮我解决一下,以便可以在一个地方进行修改,并影响其他地方。我可以重写 AbstractComponent 的 setValue/ setLabel 吗?或者我应该在渲染数据之前对数据进行编码?以及如何解码这些数据? (P/S:我在服务器端使用Grails框架) 太感谢了。


如果您使用 Ext.XTemplate,您可以在字段中转义 html,如下所示:

var tpl = new Ext.XTemplate(
    '<p>My Field: {myField:htmlEncode}</p>'
);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

一般来说,在 ExtJS 应用程序上转义 HTML 的最佳方法是什么? 的相关文章

随机推荐

  • Laravel Passport Auth 在独立项目上运行基于密码的令牌身份验证时卡住

    Laravel Passport Auth 在同一项目中的自服务器和客户端上运行时卡住 以进行基于密码的令牌身份验证 登录控制器 public function authenticaterrr Request request http ne
  • Git 漂亮的格式颜色

    我正在尝试为 Git 设置漂亮的格式颜色 据我所知 1 6 0 版本只能识别红色 绿色和蓝色 git log pretty format Credred Creset Cgreengreen Creset Cyellowyellow Cre
  • Rails 4 嵌套属性和 has_many :through 表单中的关联

    我在使用表单管理 has many through 关联时遇到问题 我不想做的是编辑关联模型的属性 其中存在大量信息 相反 我只想管理关联 我知道我可以通过操纵传递给我的操作的表单参数并手动构建关系来做到这一点 但如果可能的话 我更愿意采用
  • curl - 如何设置 DNS 缓存的 TTL 以及如何清除curl 缓存

    在这个链接的最后它提到 http comments gmane org gmane comp web curl library 40895 只要您重新使用该句柄 libcurl 默认就会使用其 DNS 缓存 你 可以改变它在缓存中保存条目的
  • Android:清除后退堆栈

    在 Android 中 我有一些活动 比如说 A B C 在A中 我使用以下代码打开B Intent intent new Intent this B class startActivity intent 在B中 我使用以下代码打开C In
  • 三星的 Camera2 宽高比

    我在 S5 上使用 Camera2 API 以 720x480 的分辨率显示基于 TextureView 的预览 使用 Camera1 时 预览看起来不错 但使用 Camera2 时预览会失真 我正在打电话SurfaceTexture se
  • 从控制器内部使用 Html.ActionLink 和 Url.Action(...)

    我想编写一个 HtmlHelper 来呈现具有预设值的 ActionLink 例如 where PageLink是一个调用的函数ActionLink使用已知的操作和控制器 例如 索引 和 页面 Since HtmlHelper and Ur
  • 如何发送带有空格的 POST 请求?

    我正在尝试将编辑文本的输入发送到 PHP 如果我发送的内容没有空格 它可以正常工作 但如果有空格就会崩溃并显示以下内容 非法字符 指的是空间 显然 这是一个正确引用的问题 但由于某种原因 我就是无法正确引用 在哪里添加引号 创建 URL 时
  • 如何将 ModelState.AddModel Error 绑定到剔除动态创建的验证范围?

    我已经设置 Knockoutjs 使用以下代码动态创建可编辑的值列表 var requirementModel function var self this self requirementtypes ko observableArray
  • FastAPI:CORS 中间件不支持 GET 方法

    我尝试在 FastAPI 框架上使用 CORS 但它不适用于 GET 方法 这是我正在处理的代码 from fastapi import FastAPI from fastapi middleware cors import CORSMid
  • iPhone 垂直拨动开关

    我正在尝试为 iPhone 创建一个垂直切换开关控件 沿着 UISwitch 的路线 但垂直滑动 我想知道现有的控件是否已经存在 或者是否有任何好的教程来解释为 iPhone 创建自定义控件的基础知识 目前 我尝试使用仿射变换从基本 UIs
  • 连接MySQL服务器时Eclipse程序崩溃

    I am writing a simple program to connect to a MySQL Server hosted locally I have ensured the server is running The code
  • 如何以不依赖扩展的方式禁用 htaccess 中的 cgi?

    我想在文档根目录下的目录中禁用任何类型的 CGI 执行 任何类型 php perl ruby 等等 我想以一种不依赖于文件扩展名的方式来执行此操作 在我的文档根目录下 因为用户必须能够放置和查看 HTML 文件 它必须位于 htaccess
  • Azure 资源管理器模板链式函数

    我正在尝试删除 在分配给输出变量值之前使用 azure 函数从 URL 获取 webappStorageUri type string value take reference resourceId Microsoft Storage st
  • 对样式化媒体接收器 CSS 进行故障排除

    我正在尝试实现样式媒体接收器 但由于某种原因 我的 chromecast 不会显示图形 我只在黑色背景上看到我的接收者的名字 不过 在演员开发控制台中预览看起来还不错 我尝试使用的CSS是这样的 https krizan se styl l
  • 在变量中存储大量数字的正确方法

    我想玩弄数字 无论多么简单 我一直在编写斐波那契数列的算法和寻找素数的强力路径 我不是程序员 只是一个数学家 然而 我经常遇到的一个问题是 long long double 和 float 经常会出现空间不足的情况 如果我想继续在JAVA中
  • 在mysql中存储mp3文件

    我发现很多人建议不要将 mp3 文件存储为 blob 我没有得到明确的解释为什么会这样 我的网站流量较低 每分钟 10 次点击 到目前为止 我已将图像文件作为 blob 存储在数据库表中 我对图像表所做的唯一查找是基于单个主键 图像渲染速度
  • Open Feignclient 与 Netflix Ribbon 集成在 springboot 中不起作用

    Feing客户端服务器 RestController public class FeinApiCall Autowired CustomFeignClient customFeignClient GetMapping getinfothro
  • C 中的冲突类型

    我试图用 C 语言构建一个非常简单的程序 该程序从函数返回浮点值 但由于某种原因我收到了错误 include
  • 一般来说,在 ExtJS 应用程序上转义 HTML 的最佳方法是什么?

    我正在使用 ExtJS 开发一个 Web 应用程序来构建 GUI 并通过 RESTful Web 服务与服务器通信 返回的数据格式化为 JSON 对象 现在我在处理包含 HTML 标签 Javascript 代码的数据时遇到问题 因为当我将