[英]Problems with Richefaces default editor on IE9 or edge
當用戶使用Internet Explorer 9時,我遇到了Richfaces版本3.3.1.GA的默認編輯器(TinyMCE)的問題。在這里和Internet上,我讀過很多人都喜歡使用X-UA兼容的元數據來降級。 IE版本,但是,我不喜歡它。 我總是更喜歡使用邊緣版本,因為我也在使用CSS 3。 另一個解決方案是RichFaces的升級,但是由於我的應用程序是相當傳統的,所以我沒有考慮這種可能性。
然后,我開始解壓縮RichFacesUI jar並將文件META-INF / resources-config.xml更改為:
<resource>
<name>scripts/tiny_mce/tiny_mce.js</name>
<path>org/richfaces/renderkit/html/scripts/tiny_mce/tiny_mce.js</path>
<renderer class="org.ajax4jsf.resource.ScriptRenderer"/>
</resource>
至:
<resource>
<name>scripts/tiny_mce/tiny_mce.js</name>
<path>org/richfaces/renderkit/html/scripts/tiny_mce/tiny_mce_src.js</path>
<renderer class="org.ajax4jsf.resource.ScriptRenderer"/>
</resource>
這是為了簡化腳本調試。 沒有它,那將很難。
首先出現這些問題是因為Richfaces對舊的IE使用了特定的語句,因此我放置了以下代碼以了解執行哪個版本的IE:
var ie = (function(){
var undef,
v = 3,
div = document.createElement('div'),
all = div.getElementsByTagName('i');
while (
div.innerHTML = '<!--[if gt IE ' + (++v) + ']><i></i><![endif]-->',
all[0]
);
return v > 4 ? v : undef;
}());
PS:這個聰明的代碼來自James Padolsey ,我在這里發現了這個問題 。
然后,我運行了我的應用程序,但在發生問題的地方,我將最接近的IE if語句更改為以下示例:
在此之前:
if (isIE) {
然后變成:
if (ie < 9) {
而當它是負面的聲明時,例如:
if (!isIE) {
然后變成:
if (!isIE || ie > 8) {
唯一的區別是getXML函數類似於:
if (!i || !i.createDocument) {
然后我改為:
if (!i || !i.createDocument || ie > 8) {
在這個要點中,我做了所有的更改。 我希望它可以幫助任何遇到此問題的人。
如果您願意,可以將我更改過的罐子放在以下鏈接上:
請,對不起我的英語錯誤,我們建議您重寫並修復此帖子。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.