【问题标题】:spotify filtering titlespotify 过滤标题
【发布时间】:2012-11-01 15:31:40
【问题描述】:

我正在 Spitiy 框架内构建个人应用程序。我在使用具有特殊特殊字符(如单引号/双引号、& 符号等)的曲目和艺术家标题时遇到问题...

在挖掘解决方案时,我发现了使用 replace() 方法的 hack。但随后进行了更多挖掘,我从 Spotify 本身找到了一个示例代码,并发现了一些奇怪的东西。本质上,当示例代码收集轨道信息,然后将其显示在

的 innerHTML 属性中时

标签,曲目标题正确显示了特殊字符,但是当我尝试将信息显示在 alert() 中或作为文本框中的值时,标题出现时特殊字符弄乱了。

同样,我可以使用 replace() 方法解决此问题,但我很想知道为什么会发生这种行为(也就是 innerHTML 显示正确与警报和文本框错误)。

这是我使用的代码:

http://codetidy.com/3891/

编辑:

从我读到的内容看来,innerHTML 实际上确实将特殊字符编码为常见的 Web 表单。但由于我将值放入文本框中,因此我制作了自己的过滤器:

http://codetidy.com/3892/

【问题讨论】:

    标签: javascript spotify


    【解决方案1】:

    首先,阅读 HTML 编码和(例如)innerHTML 和 innerText 之间的区别(以及未正确处理这两者之间的区别的 XSS 安全隐患!)

    现在,Spotify Api(至少是 Spotify 应用程序中的那个;Web API 的工作方式不同)默认返回 HTML 编码的值。

    如果您确定要对字符串进行文本编码,请对字符串使用 decodeForText() 方法(即var textname = data.name.decodeForText();)。

    另见Spotify documentation on this issue

    【讨论】:

      猜你喜欢
      • 2021-11-30
      • 1970-01-01
      • 1970-01-01
      • 2018-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多