Discuz7.2完美兼容IE9方案(非兼容模式),也是本站正使用的方案
这个方案,AJAX跳转无响应问题是来自于那个叫啥网站了,貌似是IT公社。
管理菜单问题和兼容模式问题是稻草站长自行研究出来的。
好了 ,步入正题。按照下面的步骤修改:
1.首先先打上DISCUZ官方的补丁:http://www.discuz.net/thread-2050393-1-1.html,但是这样并不完美,咱们继续改。
2.解决AJAX跳转无反应问题
修改include/js/common.js
把ajaxpost函数替换为(就是自己看ajaxpost下面的大括号,自己应该能判断哪个是ajaxpost的内容的[注意:是function ajaxpost,改的内容从function ajaxpost开始,截止到function ajaxmenu上面(不包括function ajaxmenu),这里就是function ajaxpost的内容了,很多朋友说不行,估计就是这里没改好,改的时候得小心点,看准了]):
-----由于代码中有特殊符号,没法发上来,所以我贴到一个txt里面了-----
ajaxpost.txt (1.82 KB)
3.强制为IE9模式(这样网站在IE9下就不会工作在IE7/8兼容模式下了,如果个个网站都用兼容模式,那还要IE9干啥)。
把头部(header.html)中的
- <meta http-equiv="X-UA-Compatible" content="IE=X">
复制代码 (X这里可能是7可能是8,因为有些站长可能自己改过,默认是7)。
把X改为9,也就是
- <meta http-equiv="X-UA-Compatible" content="IE=9">
复制代码
4.解决在IE9模式下帖子右下角勾上管理,但管理菜单不出来的问题。
moderate.js(貌似在/include/js下)大约50行的位置
- function pidchecked(obj) {
- if(obj.checked) {
- if(BROWSER.ie && !BROWSER.opera) {
- var inp = document.createElement('<input name="topiclist[]" />');
- } else {
- var inp = document.createElement('input');
- inp.name = 'topiclist[]';
- }
- inp.id = 'topiclist_' + obj.value;
- inp.value = obj.value;
- inp.style.display = 'none';
- $('modactions').appendChild(inp);
- } else {
- $('modactions').removeChild($('topiclist_' + obj.value));
- }
- }
复制代码
有浏览器判断,但经测试var inp = document.createElement('input');确实能在IE下执行,所以我们删除这浏览器判断,也就是把这堆代码改成:
- function pidchecked(obj) {
- if(obj.checked) {
- var inp = document.createElement('input');
- inp.name = 'topiclist[]';
- inp.id = 'topiclist_' + obj.value;
- inp.value = obj.value;
- inp.style.display = 'none';
- $('modactions').appendChild(inp);
- } else {
- $('modactions').removeChild($('topiclist_' + obj.value));
- }
- }
复制代码
好了,去后台更新缓存,问题完美解决了。
该贴已经同步到 liyafe1997的微博 |