問題敘述
使用問題:在表情庫中點擊后無法展示對應的emoji表情,僅僅顯示Unicode代碼編號,按照vue eslint規則更改添加分號后,沒有報錯但是依舊無法正確渲染。
問題源碼:
<template><div><!-- 被點擊的文字 --><p @click="copyToClipboard('⌚')">點擊我,將我復制到剪貼板</p><!-- 輸入框,這里僅為演示,實際中可能不需要顯示出來 --><inputtype="text"v-model="copiedText"ref="input"/></div>
</template><script>
export default {data() {return {copiedText: "",};},methods: {// 復制到剪貼板的方法copyToClipboard(text) {this.copiedText = text;const input = this.$refs.input;input.focus();input.select();document.execCommand("copy");input.blur();},},
};
</script>
問題展示:
問題產生原理及解決方法
問題在我直接使用了 Unicode 實體 ⌚,ESLint規則 認為這是一個未正確結束的字符引用。為了解決這個問題,應該使用 string.fromCharCode()?函數將⌚轉換為 JavaScript 字符串。
修改后代碼:
<template><div><p @click="copyToClipboard(specialChar)">⌚</p><inputtype="text"v-model="copiedText"ref="input"/></div>
</template><script>
export default {data() {return {copiedText: "",specialChar: String.fromCharCode(8986),};},methods: {copyToClipboard(text) {this.copiedText = text;const input = this.$refs.input;input.focus();input.select();document.execCommand("copy");input.blur();},},
};
</script>
運行效果:
?
成功解決