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

从输入字段读取属性时,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。我试图阅读几行字符串输入和打印出每一行。这是我的代码:

  • 问题内容: 我正在使用从运行约一分钟的进程中读取stdout。 我该如何stdout以流方式打印出该流程的每一行,以便可以看到生成的输出,但仍然阻止该流程终止,然后再继续? 似乎一次给出所有输出。 问题答案: 这是一个简单的示例(不检查错误): 如果ls结束太快,则while循环可能会在你读取所有数据之前结束。 你可以通过以下方式在中捕获其余部分: