- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我的函数完成了它应该做的事情,但它也在解析-6ren">
我正在为我的网站编写笑脸解析函数。我想要完成的是转换某些字符串,例如":)"
变成这样的图像:
或者这里是实际的 html 作为例子:
":)" ===> <img src="images/smilies/smile.png" />
我的函数完成了它应该做的事情,但它也在解析原生 javascript 函数名!我的意思是,如果我键入包含字符串 "push"
、 "pop"
或 "some"
(那里可能加载其他)我的函数会将这些字符串解析为无效图像,如下所示:
这是一个显示此内容的 html 字符串:
<img src="images/smilies/function some() { [native code] }" alt="">
这会导致浏览器控制台出现 404 未找到错误。
Failed to load resource: the server responded with a status of 404 (Not Found)
为什么会这样?正如您在此处看到的那样,我在我的代码中没有做任何太不寻常的事情:
function parse_new_comment(commentElem){
$(commentElem).html(parse_comment($(commentElem).text()));
}
function parse_comment(comment){
var formatted_comment = "";
var smilies = new Array();
smilies[":)"] = "smile.png";
smilies[":D"] = "smile-big.png";
smilies[":p"] = "tongue.png";
smilies["[sheep]"] = "sheep.png";
smilies["<3"] = "love.png";
smilies["[love]"] = "love.png";
var words = comment.split(" ");
for (var i = 0; i < words.length; i++) {
if(smilies[words[i]] !== undefined){
formatted_comment += ' <img src="images/smilies/'+smilies[words[i]]+'" alt="" />';
}else{
formatted_comment += ' ' + words[i];
}
}
return formatted_comment;
}
我感觉这行代码导致了问题 if(smilies[words[i]] !== undefined){
,因为 push
和pop
是数组函数,不过我不太确定...如果有人可以就我的函数失败的原因提出任何想法,我将不胜感激。
哦,我忘了说,我的页面使用 ajax 来做所有事情,所以新的评论是通过调用这样的函数来解析的:
parse_new_comment($("#comment_343"));
谢谢。
最佳答案
检查对象本身是否具有属性,而不是对象的属性未定义。这可以使用 hasOwnProperty
来完成.
if(smilies.hasOwnProperty(words[i])){
代替
if(smilies[words[i]] !== undefined){
此外,由于您没有将 smilies
用作数组,所以我同意 Pointy 的评论,即它应该被声明为一个对象。值得一提的是,当您在 JavaScript 中将键附加到 Array
时,它们仅在 they can be seen as unsigned integers 时才被视为数组索引。 .
var smilies = {};//short for new Object();
smilies[":)"] = "smile.png";
smilies[":D"] = "smile-big.png";
smilies[":p"] = "tongue.png";
smilies["[sheep]"] = "sheep.png";
smilies["<3"] = "love.png";
smilies["[love]"] = "love.png";
您可能对使用 Explosion Pills 建议的答案所建议的文字语法感兴趣。澄清一下,仍然需要使用 hasOwnProperty
。
关于javascript - 为什么我的笑脸解析代码调用原生 javascript 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15721347/
我的用户发现的一个小不便是,如果他们使用诸如 >_> 之类的表情符号在括号的末尾(有点像这样:>_>)然后在处理过程中它会运行 htmlspecialchars() ,制作 >_>) -
我是 java 邮件轮询的新手,如果用户互相发送邮件,我会在其中创建一种对话应用程序,然后我会从他们的邮件中读取该邮件并将其作为对话中的新消息发布。 现在的问题是,如果有笑脸、内联或嵌入图像怎么办。例
假设我在网站上有一个文本字段。我如何以编程方式使用户能够编写字母“:)”,然后在编辑器中将这两个字符转换为实际的笑脸图片 (.gif)? 我有点卡住了,因为我不知道如何查看文本字段,以及如何在正确的位
我在清理推文时遇到问题。我有一个将推文保存在 csv 中的过程,然后我对数据进行 pandas 数据框。 x 是来 self 的数据框的一条推文: 'b\'RT @LBC:詹姆斯·奥布莱恩谈到杰弗里·
我正在为我在 Stylish 中使用的 facebook 制作样式表。但是我偶然发现了一些我觉得很困惑的东西。我正在尝试将聊天中的笑脸更改为我自己的笑脸图像。 Facebook smileys My
为什么 modernizer 会生成一张笑脸...... 它来自生成的内容 div。我似乎无法在新的空 HTML 文件上复制效果 更新 我觉得笑脸来自 @font-face {font-family:
这个问题在这里已经有了答案: Chrome is not displaying my emoji correctly (2 个回答) 9 个月前关闭。 我正在尝试为网站信使显示表情符号,除 Smili
如何发送在编辑文本中一起编写的文本和表情符号/图像(不是默认的表情符号、 Assets 文件夹中的图像)以发送消息和聊天,因为它出现在该编辑文本中。 p.s 我正在通过邮件或邮件正文发送这些图片。 我
为了重新发明每一个轮子,我们公司最近推出了我们自己定制的基于网络的电子邮件应用程序,我是该应用程序的主要设计者。 我注意到的一件事是,来自基于 MS Outlook 的电子邮件(从第三方发送)的笑脸显
我正在做一个简单的聊天应用程序,我想在编写消息时在 edittext 上显示笑脸。 我用它来识别哪些字符将通过 ImageSpan 由 Image 替换(仅当在 EditText 上插入笑脸字符时才会
我是一名优秀的程序员,十分优秀!