如何在页面加载时将ASCII代码设置为按钮

时间:2013-03-01 19:32:28

标签: javascript html

我正在用HTML设计国际象棋棋盘。 &#9814是显示WHITE ROOK的代码。 我正在尝试在页面加载时设置值,并将其显示为字符串,但ROOK不会出现在按钮上

function load() {
    document.getElementById('A1').value="&#9814";
}

3 个答案:

答案 0 :(得分:1)

 function load() {
    document.getElementById('A1').innerHTML="♖";
 }

http://jsfiddle.net/RM5VD/2/

答案 1 :(得分:1)

符号&#9814♖在JavaScript中没有特殊含义;它们只是字符串,但可以将这些字符串分配给innerHTML属性,从而导致HTML解析。

最简单的方法是在JavaScript中使用Unicode字符来插入它,尽管这需要一个合适的编辑器并使用UTF-8字符编码。例如:

document.getElementById('A1').value = '♖';

下一个最简单的方法是使用 JavaScript 转义符号,即\u后跟恰好四个十六进制数字。由于WHITE CHESS ROOK是U + 2656(2656十六进制=十进制9815),你可以使用它:

document.getElementById('A1').value="\u2656";

仅当修改的元素具有符合HTML规范的value属性时才有意义。例如,<input type=button>拥有它,但button没有。但这只会影响作业的左手,即你将字符串分配给的内容。

请注意font support这样的棋子角色相当有限。而且,浏览器可能对按钮中使用的字体有自己的想法。在实践中,您应该使用一些可下载的字体。

答案 2 :(得分:0)

你需要重写这个函数:

function load() {
    document.getElementById('A1').value=String.fromCharCode(9814);
}

目前尚不清楚您正在修改哪种元素,但根据您的具体情况,您可能需要修改innerHTML而不是value

你拥有它的方式是将文本作为文字字符串传递,而不是单个字符的表示。

jsFiddle example