Discuz! 6.1~7.0 - 解决jQuery兼容问题

来源:互联网 发布:阿里云地域介绍 编辑:程序博客网 时间:2024/05/16 19:34
 

Discuz! 6.1~7.0 - 解决jQuery兼容问题

在Discuz! 6.1中无法直接使用jQuery,升级到Discuz! 7.0后也无法直接使用jQuery,估计之前的一些版本也不能直接使用jQuery。这是由于Discuz!为了解决兼容性问题,而引入了另一个兼容性问题。
在Discuz! 6.1中,对/include/javascript/common.js文件应用如下补丁即可。
--- common.6.1.original.js
+++ common.6.1.jquery.js
@@ -8,28 +8,28 @@
 */
 
 var lang = new Array();
 var userAgent = navigator.userAgent.toLowerCase();
 var is_opera = userAgent.indexOf('opera') != -1 && opera.version();
 var is_moz = (navigator.product == 'Gecko') && userAgent.substr(userAgent.indexOf('firefox') + 8, 3);
 var is_ie = (userAgent.indexOf('msie') != -1 && !is_opera)&& userAgent.substr(userAgent.indexOf('msie') + 5, 3);
 
 function $(id) {
        return document.getElementById(id);
 }
-
+if(typeof Array.prototype.push === 'undefined') {
 Array.prototype.push = function(value) {
        this[this.length] = value;
        return this.length;
 }
-
+}
 function checkall(form, prefix, checkall) {
        var checkall = checkall ? checkall : 'chkall';
        for(var i = 0; i < form.elements.length; i++) {
                var e = form.elements[i];
                if(e.name && e.name != checkall && (!prefix || (prefix && e.name.match(prefix)))) {
                        e.checked = form.elements[checkall].checked;
                }
        }
 }
 
 function doane(event) {

在Discuz! 7.0中,对/include/js/common.js文件应用如下补丁即可。

--- common.7.0.original.js
+++ common.7.0.jquery.js
@@ -45,28 +45,28 @@
                        case 'area':case 'base':case 'basefont':case'col':case 'frame':case 'hr':case 'img':case 'br':case 'input':case'isindex':case 'link':case 'meta':case 'param':
                        return false;
                }
                return true;
        });
        HTMLElement.prototype.click = function(){
                var evt = this.ownerDocument.createEvent('MouseEvents');
                evt.initMouseEvent('click', true, true,this.ownerDocument.defaultView, 1, 0, 0, 0, 0, false, false, false,false, 0, null);
                this.dispatchEvent(evt);
        }
 }
-
+if(typeof Array.prototype.push === 'undefined') {
 Array.prototype.push = function(value) {
        this[this.length] = value;
        return this.length;
 }
-
+}
 function $(id) {
        return document.getElementById(id);
 }
 
 function checkall(form, prefix, checkall) {
        var checkall = checkall ? checkall : 'chkall';
        count = 0;
        for(var i = 0; i < form.elements.length; i++) {
                var e = form.elements[i];
                if(e.name && e.name != checkall && (!prefix || (prefix && e.name.match(prefix)))) {
                        e.checked = form.elements[checkall].checked;

[Discuz! - 官方网站]

http://www.discuz.net/

[Discuz! - 常见问题]

Discuz! 6.1 从GBK编码转为UTF-8编码
Discuz! 6.1 多语言翻译工作范围

Discuz! 6.1 发送HTML格式电子邮件

Discuz! 6.1~7.0 安装SupeSite后导致安全漏洞

Discuz! 6.1 不修改模板在贴子上增加收藏按钮

Discuz! 6.1 cpmsg函数在IE下和Firefox下表现不一致

Discuz! 6.1~7.0 升级后request缓存文件名不兼容

Discuz! 6.1~7.0升级后request路径不兼容以及相应修改方案

Discuz! 7.0 模块脚本文件名

Discuz! 7.0 模块调用脚本范例程序 - 模板

Discuz! 7.0 模块调用脚本范例程序 - 数组

Discuz! 7.0模块调用脚本范例程序 - 主题

Discuz! 7.0 模块调用脚本范例程序 - 多选下拉的缺陷以及使用方法

Discuz! 6.1 - 自动禁止非公开版面向Home推送事件

Discuz! 6.1~7.0 - 解决jQuery兼容问题

原创粉丝点击