我有一个我在WYSIWYG编辑器中使用的div,当用户完成编写时,它会使用AJAX POST请求提交。但是我遇到了一个问题:任何时候文本都包含"&"这个角色会切断它之后的一切。我花了太多时间查看我的服务器端代码,但问题结果是在客户端(整个URL编码的事情)。所以我研究了如何在JavaScript方面解决这个问题,并提出了" encodeURIComponent"。根据我阅读的页面(下面的链接),它是目前进行URL编码的最佳方式(不推荐使用转义,并且encodeURI不会对某些字符进行编码。
When are you supposed to use escape instead of encodeURI / encodeURIComponent? Should I use encodeURI or encodeURIComponent for encoding URLs?
但是encodeURIComponent不起作用。以下是我如何使用它:
var wysiwyg = encodeURIComponent(document.getElementById("wysiwyg").innerHTML);
这个div的内容已经提交了(所以我知道它不是我的AJAX通话),但它没有修复"&"人物,我还没能在Google或SO上找到任何替代品。我在黑暗中得到了一些关于可能发生的事情的一些镜头,但他们都是这样(没有研究,只是基于经验的一般猜测): - 也许某种跨浏览器的难度(在Firefox中不支持或类似的愚蠢)? - 我还没有找到其他参数(可能是UTF-8等编码类型)? - 使用innerHTML的一些未记录的问题?
所以我在这里抓住稻草。 encodeURIComponent是否有任何已知错误?有没有其他选择(除了做大量的字符串替换工作 - 我真的在考虑是否可以让它工作)?任何变通方法,链接,建议或线索将不胜感激。感谢。