spotify过滤标题

时间:2012-11-01 15:31:41

标签: javascript spotify

我正在Spotiy框架内构建个人应用程序。我的曲目和艺术家头衔有问题,有特殊的特殊字符,如单/双引号,&符号......等等。

在挖掘解决方案时,我发现hack使用了replace()方法。但是后来又做了一点挖掘,我发现了一个来自Spotify本身的示例代码,并发现了一些奇怪的东西。基本上,当示例代码收集了轨道信息,然后将其显示在

标签的innerHTML属性中时,轨道标题正确显示了特殊字符,但是当我尝试在alert()中显示信息时或者作为一个文本框中的值,标题出来时特殊字符搞砸了。

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

这是我使用的代码:

http://codetidy.com/3891/

编辑:

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

http://codetidy.com/3892/

1 个答案:

答案 0 :(得分:0)

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

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

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

另见Spotify documentation on this issue