0

我面临此链接中提到的相同问题(富文本(YUI)编辑器在 IE11 上损坏,他们为 YUI(2.9)提供了解决方案,但我在我的应用程序中使用YUI(2.5.2)。我没有找到YAHOO yahoo-dom- event.js中的 .env.parseUA。我在YUI(2.5.2) 库中搜索了YAHOO.env.parseUA属性。谁能建议如何为 YUI(2.5.2) 解决这个问题。

4

3 回答 3

0

我在旧网站上使用 2.7.0b。请理解,除非您使用的是库的确切版本,否则这些“修复”对您来说都不是完全正确的。这是因为每个都被“最小化”了,为了最小化,使用了各种字符。因此,您可能需要进行一些狩猎。另外,请记住,这对您来说可能会有所不同,具体取决于您是单独使用 yahoo.js、yahoo-dom-event.js 还是在我的情况下使用 utility.js。所以你需要做相应的调整。

步骤1:

在 ln 7 字符 1592(yahoo.js 的 ln 396)上的实用程序/实用程序.js 和 yahoo-dom-event/yahoo-dom-event.js 中: 紧接着: if(A&&A[1]){C.caja=parseFloat(A[1]);}

但之前: return C;}();

添加这个: if (C.ie==0&&B.indexOf('Trident')!=-1){C.ie=11;}

第2步:

在第 13 行的 editor/editor-min.js 和 editor/simpleeditor-min.js 字符 2078 中(editor.js 的 ln 3135 和 simpleeditor.js 的 ln 3135)

紧接着: (navigator.userAgent.indexOf("Firefox/1.5")!=-1)){

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

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

于 2014-10-02T20:07:56.780 回答
0

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

  • 查找所有实例this.browser.ie
  • 全部替换为!!window.MSInputMethodContext || this.browser.ie
于 2014-02-28T06:37:56.100 回答
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;
}();
于 2015-12-09T17:21:17.520 回答