我正在运行Internet Explorer 11和YUI 2:富文本编辑器似乎无法运行。有关详细信息,请参阅随附的屏幕截图。任何想法如何在IE11下解决这个问题?
答案 0 :(得分:5)
对于IE改变其用户代理,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
函数,并在包含“BackCompat”的if-branch之后,
加上这个:
this.browser = YAHOO.env.parseUA();
然后只是在以下if-branch(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;
}
答案 1 :(得分:2)
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 :(得分:1)
我在其他地方发布了这个,但认为它也适用于此:
我在旧网站上使用2.7.0b。只要明白,除非您使用完全相同的库版本,否则这些“修复”都不适合您。这是因为每个都被“最小化”,为了最小化,使用了各种字符。所以你可能不得不做一些狩猎。另外,请记住,根据您是否使用yahoo.js,yahoo-dom-event.js或在我的情况下,utilities.js,这可能会有所不同。所以你需要做出相应的调整。
在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;}
编辑/编辑-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;}