我用JavaScript编写了这个脚本,用表情符号替换了文本,并且当我在textarea':)''<3'等中书写时工作正常。
但是,当我写一篇帖子并保存其描述为“ :)”时,我希望表情符号代替文本“ :)”出现
显示的行是已保存帖子的描述:
<p class="ptext msg_wrap" id="message"><?php echo $row['post_description']; ?>
JavaScript代码:
<script type="text/javascript">
var map = {
"<3": "\u2764\uFE0F",
"</3": "\uD83D\uDC94",
":D": "\uD83D\uDE00",
":)": "\uD83D\uDE03",
";)": "\uD83D\uDE09",
":(": "\uD83D\uDE12",
":p": "\uD83D\uDE1B",
";p": "\uD83D\uDE1C",
":'(": "\uD83D\uDE22"
};
function escapeSpecialChars(regex) {
return regex.replace(/([()[{*+.$^\\|?])/g, '\\$1');
}
document.getElementById('message').oninput = function() {
for (var i in map) {
var regex = new RegExp(escapeSpecialChars(i), 'gim');
this.value = this.value = this.value.replace(regex, map[i]);
}
};
</script>
答案 0 :(得分:0)
您已经为oninput
事件编写了JS函数。这意味着,它将寻找输入来触发更改,但是在从db动态加载文本时,您正在使用<p>
在段落中分配文本。要么将<p>
更改为<input>
,要么将事件更改为onLoad
。