Joomla делает это.Вот как остановить фильтрацию тегов скрипта: http://docs.joomla.org/Why_does_some_HTML_get_removed_from_articles_in_version_1.5.8%3F
Кроме того, почему нет текста «Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра» внутри
(по крайней мере) или почему вы не используете какую-либо JavaScript-зависимую функцию, чтобы скрыть текст?Потому что то, что вы разместили выше, всегда будет отображаться.В этом отношении тот, кто может просматривать содержимое вашего запроса AJAX без включенного JavaScript, уже достаточно умен, чтобы не нуждаться в объяснениях: -)
Наконец, почему вы используете document.write вместоболее понятный и универсальный: document.getElementById (yourId) .innerHTML = "your@email.com";И положить вставку электронной почты в span или div.Если вы поместите его в span или div с идентификатором, это также позволит вам контролировать внешний вид с помощью CSS и будет казаться менее примитивным, чем простой старый document.write
Опять же, почему бы не простовернуть электронную почту в объекте JSON и сделать так, чтобы ваша функция AJAX прочитала JSON и вставила его в div или span на странице?Намного чище и элегантнее, чем возвращать необработанный HTML.
РЕДАКТИРОВАТЬ: Извините, я вижу, что вы отправляете JavaScript для JQuery предположительно eval, а затем вы используете document.getElementById.Не делай этого.Вот что должен вернуть ваш запрос (и извините, но я не знаю точно, что означают имена ваших переменных, поэтому я просто придумываю):
{
"path": "/home",
"prefix": "/users/",
"email":"someemail@gmail.com",
"suffix": "/stuff/",
"attribs": "yourattribs-could-be-a-nested-array-of-values"
}
Ваш код JQuery должен выглядеть примерно так:
success: function(res) {
if (res) {
$("#content").fadeOut(function() {
$("#content").remove();
var link = '<a href="' + res.path + res.prefix + res.email + res.suffix + res.attribs + '">' + res.email + '</a>';
$("#content")[0].html(link);
}
});
}