Я использую Internet Explorer 11 и YUI 2: Rich Text Editor не работает. Пожалуйста, смотрите прикрепленный снимок экрана для более подробной информации. Любые идеи, как исправить это в IE11?
Редактор форматированного текста (YUI) не работает в IE11
Ответы (3)
Поскольку IE изменил свой User-Agent, YUI (2.9) нуждается в операции.
Измените yahoo-dom-event.js: найдите это: YAHOO.env.parseUA, затем, наконец, добавьте что-то, что говорит о том, что YAHOO.env.ua теперь работает с IE 11. Вот так:
if (g.ie == 0 && c.indexOf('Trident') != -1){ g.ie = 11; }
Измените editor.js: найдите функцию
_setInitialContent
и после ветки if, которая включает «BackCompat», добавьте это:this.browser = YAHOO.env.parseUA();
затем просто в следующей ветке if (
if (this.browser.ie || this.browser.webkit || this.browser.opera || (navigator.userAgent.indexOf('Firefox/1.5') != -1))
): добавьте это:if (this.browser.ie == 11) { this.browser.ie = 0; }
Надежда работает, удачи!
Решение kinglomei работает, но вам, возможно, придется немного изменить его, чтобы оно работало на вас. В YUI эта функция parseUA может быть определена во многих разных местах в зависимости от того, как вы настроили свой веб-сайт; наш случай определяет его в файле yahoo.js, но он часто определяется в utilies, yuiloader, yui-dom-event и yahoo-dom-event, как заявил kinglomei.
Если вы используете минимизированный код, решение kinglomei работает отлично, но если вы ссылаетесь на отладочный или просто неминифицированный код, вместо этого ваш код должен выглядеть так (минификация переименовывает переменные):
if (o.ie == 0 && ua.indexOf('Trident') != -1){
o.ie = 11;
}
Я разместил это в другом месте, но подумал, что это применимо и здесь:
Я использую 2.7.0b на устаревшем сайте. Просто поймите, что ни одно из этих «исправлений» не будет точным для вас, если вы не используете точно такую же версию библиотеки. Это связано с тем, что по мере того, как каждый из них был «минимизирован», для минимизации использовались различные символы. Так что, возможно, вам придется заняться охотой. ТАКЖЕ имейте в виду, что это может отличаться для вас в зависимости от того, используете ли вы yahoo.js сам по себе, yahoo-dom-event.js или, как в моем случае,utilities.js. Поэтому вам нужно будет внести соответствующие коррективы.
Шаг 1:
В утилитах/utilities.js и yahoo-dom-event/yahoo-dom-event.js на 7-м символе 1592 (ln 396 yahoo.js): сразу после:
if(A&&A[1]){C.caja=parseFloat(A[1]);}
Но прежде:
return C;}();
Добавь это:
if (C.ie==0&&B.indexOf('Trident')!=-1){C.ie=11;}
Шаг 2:
В editor/editor-min.js и editor/simpleeditor-min.js в строке 13 символ 2078 (ln 3135 в editor.js и ln 3135 в simpleeditor.js)
Сразу после:
(navigator.userAgent.indexOf("Firefox/1.5")!=-1)){
Но прежде:
try{if(this.browser.air)
Добавь это:
if(this.browser.ie==11){this.browser.ie=0;}