当前位置: 首页 > 面试题库 >

JavaScript从输入字段读取属性时,HTML编码丢失

刘胜泫
2023-03-14
问题内容

我正在使用JavaScript从隐藏字段中提取值并将其显示在文本框中。隐藏字段中的值被编码。

例如,

<input id='hiddenId' type='hidden' value='chalk &amp; cheese' />

被拉入

<input type='text' value='chalk &amp; cheese' />

通过一些jQuery从隐藏字段中获取值(在这一点上,我失去了编码):

$('#hiddenId').attr('value')

问题是,当我chalk &amp; cheese从隐藏字段读取内容时,JavaScript似乎丢失了编码。我不希望值是chalk & cheese。我希望amp;保留原义。

是否存在将对字符串进行HTML编码的JavaScript库或jQuery方法?


问题答案:

编辑:
此答案发布很久以前,并且该htmlDecode功能引入了XSS漏洞。已对其进行了修改,将临时元素从div改为textarea减少了XSS机会。但是如今,我鼓励您使用其他anwswer中建议的DOMParser
API 。

我使用以下功能:

function htmlEncode(value){
  // Create a in-memory element, set its inner text (which is automatically encoded)
  // Then grab the encoded contents back out. The element never exists on the DOM.
  return $('<textarea/>').text(value).html();
}

function htmlDecode(value){
  return $('<textarea/>').html(value).text();
}

基本上,textarea元素是在内存中创建的,但是永远不会附加到文档中。

htmlEncode函数上,我设置的innerText元素,并检索已编码的innerHTML;
htmlDecode函数上,我设置了innerHTML元素的值,并innerText检索到。



 类似资料:
  • 问题内容: 我正在使用JavaScript从隐藏字段中提取值并将其显示在文本框中。隐藏字段中的值被编码。 例如, 被拉入 通过一些jQuery从隐藏字段中获取值(在这一点上,我失去了编码): 问题是,当我从隐藏字段读取内容时,JavaScript似乎丢失了编码。我不希望值是。我希望保留原义。 是否存在将对字符串进行HTML编码的JavaScript库或jQuery方法? 问题答案: 编辑: 此答案

  • 我有一个实用工具类,其中我有一个方法,它需要用户名和密码来连接其他URL。我需要将用户名保存在属性文件中,这样我就可以随时更改它。但当我在静态方法中使用它(作为实用程序类)时,问题是它显示为空(即它不能从属性文件中读取)。 但当我在其他控制器中输入这些值时,它们就会到达那里。所以我的问题是如何读取静态字段中的属性值

  • 我想动态设置名称属性 table.component.html 表.component.ts

  • 问题内容: 我有一个用模板渲染的输入字段,如下所示: 呈现为: 现在,假设我想向呈现的输入元素添加一个属性,我该怎么做?还是或者 问题答案:

  • 无法理解为什么此代码会抛出InputMismatchExcure。我试图阅读几行字符串输入和打印出每一行。这是我的代码:

  • 问题内容: 有没有一种快速的方法来将HTML文本输入()设置为仅允许数字键击(加’。’)? 问题答案: 注意: 这是更新的答案。下面的注释指的是一个旧版本,其中充斥着密钥代码。 JavaScript 您可以使用以下功能过滤文本的输入值(支持Copy + Paste,Drag + Drop,键盘快捷键,上下文菜单操作,不可键入的键,插入标记的位置,不同的键盘布局以及IE 9以后的所有浏览器) : 现