JavaScript: для Обходного решения было нужно: Internet Explorer изменяет текст ссылки при изменении href

Findbugs может обнаружить круговые зависимости от класса и имеет плагин Eclipse также.

http://findbugs.sourceforge.net/

5
задан 5 revs, 2 users 98% 24 November 2009 в 23:09
поделиться

2 ответа

После некоторых исследований и отладки я обнаружил, что проблема вызвана встроенным поведением Internet Explorer. Это происходит при установке свойства href ссылки, текстовое содержимое которой выглядит как URL-адрес (согласно IE). В этих случаях IE копирует содержимое атрибута href в текст ссылки.

Для этого может быть несколько обходных путей, но я обнаружил, что по крайней мере эта логика работает:

  1. сохранить innerHTML во временную переменную,
  2. установить атрибут href как обычно
  3. , если innerHTML изменился, скопируйте исходный innerHTML из временной переменной.

Кажется, это работает, потому что изменение innerHTML ссылки не вызывает изменения атрибута href .

В tinyMCE найдите следующую строку в setAllAttribs () functions.js плагина advlink:

setAttrib(elm, 'href', href);

... и замените ее этим монстром:

if(tinyMCE.isMSIE) {
    var tmp = elm.innerHTML;
    setAttrib(elm, 'href', href);
    if(elm.innerHTML != tmp) // optional, but keeps unnecessary innerHTML set:s away
        elm.innerHTML = tmp;
}
else {
    setAttrib(elm, 'href', href);
}

... и ваши ссылки будут выглядеть нетронутыми . Я также завел обсуждение этого вопроса на форуме tinyMCE . Если они опубликуют некоторые улучшения моего решения или скажут, что это чушь, я обновлю и этот вопрос.

8
ответ дан 14 December 2019 в 04:40
поделиться

Требуется дополнительная информация:

  1. Это ведет себя так же в других браузерах?
  2. Вы вводите это в области отформатированного текста или в представлении html?
  3. У вас правильно настроили TinyMCE? Похоже на ошибку в вашей конкретной реализации - она ​​не анализирует теги HTML должным образом.
0
ответ дан 14 December 2019 в 04:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: