我正在尝试将表情符号代码转换为表情符号图像。我想在一个函数中写它。这是没有功能的原始代码:
$.get("showMsgLive.php?username=" + str + "&servertime=" + servertime + "&usertime=" + usertime + "&lastmsgID=" + lastmsgid, function(newitems){
newitems = newitems.replace(/\(smile1\)/g, '<img src="images/emoticons/emobasic/smile1.gif" class="emoticon"/>')
.replace(/\(rabbit18\)/g, '<img src="images/emoticons/emospecial/rabbit18.gif" class="emoticon"/>')
.replace(/\(rabbit19\)/g, '<img src="images/emoticons/emobasic/rabbit19.gif" class="emoticon"/>')
.replace(/\(rabbit20\)/g, '<img src="images/emoticons/emoadvance/rabbit20.gif" class="emoticon"/>')
.replace(/\(sheep4\)/g, '<img src="images/emoticons/emospecial/sheep4.gif" class="emoticon"/>'); //end of special emo
newitems.innerHTML = newitems;
api.getContentPane().append(newitems);
});
以下是我尝试在函数中编写代码的代码:
function convertTextEmo(newitems){
newitems = newitems.replace(/\(smile1\)/g, '<img src="images/emoticons/emobasic/smile1.gif" class="emoticon"/>')
.replace(/\(rabbit19\)/g, '<img src="images/emoticons/emospecial/rabbit19.gif" class="emoticon"/>')
.replace(/\(rabbit20\)/g, '<img src="images/emoticons/emobasic/rabbit20.gif" class="emoticon"/>')
.replace(/\(sheep4\)/g, '<img src="images/emoticons/emoadvance/sheep4.gif" class="emoticon"/>'); //end of special emo
return newitems;
}
jQuery.get("showMsgLive.php?username=" + str + "&servertime=" + servertime + "&usertime=" + usertime + "&lastmsgID=" + lastmsgid, function(newitems){
convertTextEmo(newitems);
api.getContentPane().append(newitems);
});
我没有将innerHTML
放在函数中,因为我不知道在哪里以及如何放置它,并且输出没有成功将代码转换为图像。我可以知道在函数中放置innerHTML的位置或方法并返回值吗?
答案 0 :(得分:3)
newitems.innerHTML = newitems;
甚至不应该工作,因为newitems
是字符串而不是HTML元素。
我认为你所要做的就是:
api.getContentPane().append(convertTextEmo(newitems));
改进代码的另一个提示:由于图像名称与文本中的标识符相同,您只需创建一个名称数组:
var emoticons = ['smile1', 'rabbit18',...];
并循环遍历:
function convertTextEmo(newitems, icons){
var pattern, content;
for(var i = icons.length; i--; ) {
pattern = new RegExp('\(' + icons[i] + '\)', 'g');
content = '<img src="images/emoticons/emospecial/' + icons[i] + '.gif" class="emoticon"/>';
newitems = newitems.replace(pattern, content);
}
return newitems;
}
答案 1 :(得分:2)
jQuery.get("showMsgLive.php?username=" + str + "&servertime=" + servertime + "&usertime=" + usertime + "&lastmsgID=" + lastmsgid, function(newitems){
newitems = convertTextEmo(newitems);
api.getContentPane().append(newitems);
});
您的函数返回修改后的HTML。