Удаление Cufon, как только он был загружен

Я знаю, что это немного странно, но я использую Cufon на одной из своих страниц, но мне нужно иметь возможность отключить его для всех элементов, если пользователь нажимает кнопку.

Теперь я надеялся, что это будет как Cufon.Reset(селектор) или что-то в этом роде, но я не смог ничего найти, так есть ли способ превратить текст Cufoned обратно в стандартный текст без обновления страницы?

4 ответа

Решение
var RemoveCufon = function (selector) {
    $(selector).each(function (index, element) { $(element).text(BuildCufonTextString(element)); });
};

var BuildCufonTextString = function (parent) {
    var elementText = "";
    $("cufon cufontext", parent).each(function (index, element) { elementText += $(element).text(); });
    return $.trim(elementText);
};

Вот ручной способ, который работает, но хотел бы знать что-нибудь попроще...

Не думай так. Cufon создает img. Поэтому отмена без обновления страницы невозможна.

Вы можете написать сценарий для:

  • скопировать текст (скопировать html-тег и скрыть его) перед запуском Cufon
  • чем при нажатии кнопки скрыть cufon и показать скопированный текстовый элемент с чистым текстом

Я бы предложил использовать @font-face вместо Cufon - отлично работает на IE, FF, Safari. Хром, скажем, на 80% качественный.

Проверьте этот сайт - он использует метод @font-face. Работает отлично.

Допустим, все ваши теги H1 выполнены в стиле cufont. Для этого вы будете использовать:

Cufon.replace('h1');

если вы хотите отменить действие cufon, вы можете использовать:

$('h1').each(function(){
    $(this).find('cufon').each(function(){
        $(this).replaceWith($(this).find('cufontext').text())
    })
})

Я только что прошел весь процесс реализации более простой версии одного из сценариев, обсуждаемых здесь, чтобы получить текст из тегов cufontext. Работало просто отлично

var nameFromCufon = $(profileName).find('cufontext').each(function(){
    $(this).replaceWith($(this).text())
})

ProfileName является непосредственным родительским тегом span, окружающим теги cufon. Затем я попробовал что-то настолько простое, что было слишком очевидно: $ (profileName).text ();

.text дает мне только текст со всем удаленным кодом тега. Так просто.

Другие вопросы по тегам