Как безопасно получить часть данных в тег div? - PullRequest
1 голос
/ 25 августа 2011

Я использовал ajax для загрузки файла JSON из Интернета, а затем установил один из ключей для переменной. Как мне получить содержимое этой переменной внутри тега div? Я мог бы сделать:

theJsonKey = jsonObject.key;  
document.getElementById('theDivTag').innerHTML = theJsonKey;

Но это не кажется безопасным, поскольку кто-то может поместить сценарии или HTML в файл JSON.

Ответы [ 2 ]

2 голосов
/ 25 августа 2011

Самый безопасный / кросс-браузерный способ - это сделать. createTextNode innerHTML

document.getElementById('theDivTag').innerHTML = "";
document.getElementById('theDivTag').appendChild(document.createTextNode(theJsonKey));

Благодарим Мэтта Макдональда за appendChild: P

(я бы видел это)

1 голос
/ 25 августа 2011

Что происходит за кулисами для кодирования HTML.

function safeHtml(v) {
    return v.replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;').replace(/"/g,'&quot;').replace(/'/g, '&apos;');
}

& ==> & amp;

> ==> & gt;

<==> & lt;

"==> & quot;

& APOS; ==> & amp;

Для более полного списка символьных сущностей для HTML http://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...