富文本(YUI-2.5.2)编辑器在IE11上打破

时间:2014-01-09 11:09:02

标签: debugging rich-text-editor internet-explorer-11 browser-detection yui2

我遇到了这个链接中提到的相同问题(Rich Text (YUI) Editor Broken on IE11他们为YUI(2.9)提供了解决方案,但我在我的应用程序中使用了 YUI(2.5.2 )。我没有在yahoo-dom-event.js中找到 YAHOO.env.parseUA 。我在 YUI(2.5)中搜索了 YAHOO.env.parseUA 属性.2)库。任何人都建议如何为YUI(2.5.2)修复此问题。

3 个答案:

答案 0 :(得分:0)

simple-editor.js使用以下更改:

  • 查找this.browser.ie
  • 的所有实例
  • 将所有内容替换为!!window.MSInputMethodContext || this.browser.ie

答案 1 :(得分:0)

我在旧网站上使用2.7.0b。请理解,除非您使用的是库的确切版本,否则这些“修复”都不适合您。这是因为每个都被“最小化”,为了最小化,使用了各种字符。所以你可能不得不做一些狩猎。另外,请记住,根据您是否使用yahoo.js,yahoo-dom-event.js或在我的情况下,utilities.js,这可能会有所不同。所以你需要做出相应的调整。

第1步:

在utilities / utilities.js& yahoo-dom-event / yahoo-dom-event.js on ln 7 Character 1592(ln 396 of 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步:

编辑/编辑-min.js&编辑/ simpleeditor-min.js,第13行,字符2078(编辑的第3135页,简称为31s of simpleeditor.js)

之后: (navigator.userAgent.indexOf("Firefox/1.5")!=-1)){

但之前: try{if(this.browser.air)

添加: if(this.browser.ie==11){this.browser.ie=0;}

答案 2 :(得分:0)

虽然没有YAHOO.env.parseUA,但yahoo-dom-event.js确实在2.5.2中有YAHOO.env.ua。我能够通过添加

来完成这项工作
else{A=B.match(/rv:([^\s\)]*)/);if(A&&A[1]){C.ie=parseFloat(A[1]);}}

之间的

A=B.match(/Gecko\/([^\s]*)/);if(A){C.gecko=1;A=B.match(/rv:([^\s\)]*)/);if(A&&A[1]){C.gecko=parseFloat(A[1]);}}

}}}return C;}();

第7行,第1514栏。

这将查找用户代理字符串中的修订号,并将其设置为ie,如果它与其他任何字符串不匹配。使用Edge时,将返回ie = 11。

为了便于阅读,在添加我的部分

后,YAHOO.env.ua的代码如下所示
YAHOO.env.ua = function () {
    var C = { ie: 0, opera: 0, gecko: 0, webkit: 0, mobile: null, air: 0 };
    var B = navigator.userAgent, A;
    if ((/KHTML/).test(B)) {
        C.webkit = 1;
    }
    A = B.match(/AppleWebKit\/([^\s]*)/);
    if (A && A[1]) {
        C.webkit = parseFloat(A[1]);
        if (/ Mobile\//.test(B)) {
            C.mobile = "Apple";
        } else {
            A = B.match(/NokiaN[^\/]*/);
            if (A) {
                C.mobile = A[0];
            }
        }
        A = B.match(/AdobeAIR\/([^\s]*)/);
        if (A) {
            C.air = A[0];
        }
    }
    if (!C.webkit) {
        A = B.match(/Opera[\s\/]([^\s]*)/);
        if (A && A[1]) {
            C.opera = parseFloat(A[1]);
            A = B.match(/Opera Mini[^;]*/);
            if (A) {
                C.mobile = A[0];
            }
        } else {
            A = B.match(/MSIE\s([^;]*)/);
            if (A && A[1]) {
                C.ie = parseFloat(A[1]);
            } else {
                A = B.match(/Gecko\/([^\s]*)/);
                if (A) {
                    C.gecko = 1;
                    A = B.match(/rv:([^\s\)]*)/);
                    if (A && A[1]) {
                        C.gecko = parseFloat(A[1]);
                    }
                } else {
                    A = B.match(/rv:([^\s\)]*)/);
                    if (A && A[1]) {
                        C.ie = parseFloat(A[1]);
                    }
                }
            }
        }
    }
    return C;
}();