|
因为Discuz7.2在IE9浏览器中有一系列的问题,所有要在以后的开发中考虑到ie9浏览器的一些问题了,这里简单介绍下,需要的朋友可以参考下
现象: 1. IE9快速发帖不跳转 2. IE9管理员处理帖子失败 3. IE9登录不跳转,需要手动刷新
原因:
1. AJAXPOST函数判断out了 2. 动态创建iframe时各浏览器处理方式不同
解决方法:
1. 修改templates/header.htm 把 <meta http-equiv=”x-ua-compatible” content=”ie=7″ /> 替换为
复制代码代码如下: <!–[if lte IE 8]> <meta http-equiv=”x-ua-compatible” content=”ie=7″ /> <![endif]–> <!–[if IE 9]> <meta http-equiv=”x-ua-compatible” content=”ie=9″ /> <![endif]–>
2.修改include/js/common.js
把ajaxpost函数替换为:
复制代码代码如下: function ajaxpost(formid, showid, waitid, showidclass, submitbtn, recall) { var waitid = typeof waitid == 'undefined' || waitid === null ? showid : (waitid !== '' ? waitid : ''); var showidclass = !showidclass ? '' : showidclass; var ajaxframeid = 'ajaxframe'; var ajaxframe = $(ajaxframeid); var formtarget = $(formid).target; var handleResult = function() { var s = ''; var evaled = false; showloading('none'); try { s = $(ajaxframeid).contentWindow.document.XMLDocument.text; } catch(e) { try { s = $(ajaxframeid).contentWindow.document.documentElement.firstChild.wholeText; } catch(e) { try { s = $(ajaxframeid).contentWindow.document.documentElement.firstChild.nodeValue; } catch(e) { s = '内部错误,无法显示此内容'; } } } if(s != '' && s.indexOf('ajaxerror') != -1) { evalscript(s); evaled = true; } if(showidclass) { $(showid).className = showidclass; if(submitbtn) { submitbtn.disabled = false; } } if(!evaled && (typeof ajaxerror == 'undefined' || !ajaxerror)) { ajaxinnerhtml($(showid), s); } ajaxerror = null; if($(formid)) $(formid).target = formtarget; if(typeof recall == 'function') { recall(); } else { eval(recall); } if(!evaled) evalscript(s); ajaxframe.loading = 0; $('append_parent').removeChild(ajaxframe); }; if(!ajaxframe) { try{ ajaxframe = document.createElement('<iframe name="' + ajaxframeid + '" id="' + ajaxframeid + '"></iframe>'); }catch(e){ ajaxframe = document.createElement('iframe'); ajaxframe.name = ajaxframeid; ajaxframe.id = ajaxframeid; } ajaxframe.style.display = 'none'; ajaxframe.loading = 1; $('append_parent').appendChild(ajaxframe); } else if(ajaxframe.loading) { return false; } _attachEvent(ajaxframe, 'load', handleResult); showloading(); $(formid).target = ajaxframeid; $(formid).action += '&inajax=1'; $(formid).submit(); return false; }
后台刷新缓存,搞定。 |
|