Попытка отобразить список типографских символов с помощью html / javascript - PullRequest
0 голосов
/ 02 февраля 2012

Хорошо, вы все. Я пытаюсь написать немного кода, который помещает типографские глифы на HTML-страницу. Символы, такие как: & amp (амперсанд) и & # 165 (иена). Я использую простой цикл for для создания чисел 160-255 (числа, которые ассоциируются с количеством глифов) и добавляя "& #". Я полагаю, что это создает строку "& # xxx", которая затем включается в

и добавляется в document.body.

Проблема в том, что все, что я получаю, это список напечатанных строк & # 160 - & # 255 в браузере. Любые мысли о форматировании это по-другому? Я думал, что это может быть ошибка кодирования?

var p = null;

// make <p> tags and insert string "&#"+i, where i comes from for loop. //


function makeP(glyphNum){


    var gNum = glyphNum.toString();
    p = document.createElement("p");
    var pGlyph = document.createTextNode("&#"+gNum);
    var string = pGlyph.toString();

    p.appendChild(pGlyph);
    //console.log(p);
    document.body.appendChild(p);


}


//create nums for glyphs//


for(var i = 160;i <= 255; i++)
{

    makeP(i);
}

Ответы [ 2 ]

4 голосов
/ 02 февраля 2012

document.createTextNode не анализирует HTML-объекты.Вместо этого установите свойство innerHTML.Обратите внимание, что числовая сущность HTML должна начинаться с префикса &#, а с последующей точкой с запятой (;).

function makeP(glyphNum){
    var p = document.createElement("p");
    p.innerHTML = "&#" + glyphNum + ";";
    document.body.appendChild(p);
}
2 голосов
/ 02 февраля 2012

Альтернативой является использование String.fromCharCode() для создания контента по коду символа. Вот jsfiddle.

$('p').append((function() {
    var i, s = [];
    for (i = 32; i < 1000; ++i)
        s[i] = String.fromCharCode(i);
    return s.join('');
})());
...