|
关于对discuz.gtimg.cn不明代码的解决方法
今天看了下一个频道的页面,发现有js什么的冲突代码
最近用排除方法 是底部
这代码引起的,既然在底部那就很好找,找到模版 footer.htm 里面是用 调用的
之前没有这代码的,打了0339补丁就有了,那就去0339补丁里搜索这代码
在 source/function/function_cloud.php 里有这么一句赤裸裸的代码,为什么我叫他赤裸裸
一 因为这gtimg.cn跟官方,压跟没有联系
二 这js代码还会影响我们js的效果
三 下载这个js还使用一个eval(function(p]a,c,k,e,d)加密
-----------------------------------------------------------------------------------------------
解密后得到的代码
[u]
var clearTips;
DiscuzCloudNameSpace = new Object();
DiscuzCloudNameSpace.register = function(fullName) {
try {
var nsArray = fullName.split(".");
var strNS = "";
var strEval = "";
for (var i = 0; i 0) strNS += ".";
strNS += nsArray;
strEval += " if (typeof(" + strNS + ") =='undefined') " + strNS + " = new Object(); "
};
if (strEval != "") eval(strEval)
} catch(e) {
alert(e.message)
}
};
DiscuzCloudNameSpace.register('DiscuzCloud');
DiscuzCloud.JSONP = (function() {
var counter = 0]
head, query, key, window = this;
function load(url) {
script = document.createElement('script')]
done = false;
script.src = url;
script.charset = 'UTF-8';
script.async = true;
script.onload = script.onreadystatechange = function() {
if (!done && (!this.readyState || this.readyState === "loaded" || this.readyState === "complete")) {
done = true;
script.onload = script.onreadystatechange = null;
if (script && script.parentNode) {
script.parentNode.removeChild(script)
}
}
};
if (!head) {
head = document.getElementsByTagName('head')[0]
};
head.appendChild(script)
};
function jsonp(url] params, callback) {
if (url.indexOf('?') > -1) {
query = '&'
} else {
query = '?'
};
params = params || {};
for (key in params) {
if (params.hasOwnProperty(key)) {
query += encodeURIComponent(key) + "=" + encodeURIComponent(params[key,) + "&"
}
};
var jsonp = 'discuzTipsCallback';
window[jsonp] = function(data) {
callback(data);
try {
delete window[jsonp]
} catch(e) {}
window[jsonp] = null
};
load(url + query + "callback=" + jsonp);
return jsonp
};
return {
get: jsonp
}
} ());
DiscuzCloud.htmlspecialchars = function(string, quote_style, charset, double_encode) {
var optTemp = 0]
i = 0]
noquotes = false;
if (typeof quote_style === 'undefined' || quote_style === null) {
quote_style = 2
};
string = string.toString();
if (double_encode !== false) {
string = string.replace(/&/g, '&')
};
string = string.replace(//g, '>');
var OPTS = {
'ENT_NOQUOTES': 0]
'ENT_HTML_QUOTE_SINGLE': 1,
'ENT_HTML_QUOTE_DOUBLE': 2,
'ENT_COMPAT': 2,
'ENT_QUOTES': 3,
'ENT_IGNORE': 4
};
if (quote_style === 0) {
noquotes = true
};
if (typeof quote_style !== 'number') {
quote_style = [,.concat(quote_style);
for (i = 0; i cookie_start ? cookie_end: document.cookie.length)))
};
DiscuzCloud.$ = function(id) {
return document.getElementById(id)
};
DiscuzCloud.Tips = function(sId, version, release, api, founder, fix, sUrl, sCharset, ts, sig, adminId, groupId, uid, openId) {
this.sId = sId;
this.sUrl = sUrl;
this.version = version;
this.release = release;
this.api = api;
this.founder = founder;
this.fix = fix;
this.clientWidth = document.documentElement.clientWidth;
this.clientHeight = document.documentElement.clientHeight;
this.discuzTips = DiscuzCloud.$('discuz_tips');
newDate = new Date();
this.url = 'http://cp.discuz.qq.com/tips/get?rand=' + newDate.getDate() + newDate.getHours();
this.secret = '';
this.tipsId = '';
this.cacheKey = '';
this.sendTime = '';
this.sCharset = sCharset;
if (typeof(document.characterSet) == 'undefined') {
this.browserCharset = document.charset
} else {
this.browserCharset = document.characterSet
};
if (discuzTipsCVersion == '2') {
this.adminId = adminId;
this.groupId = groupId;
this.uid = uid;
this.openId = openId
};
this.ts = ts;
this.sig = sig
};
DiscuzCloud.Tips.prototype.show = function() {
if (discuzTipsCVersion == '2' && this.adminId != 1) {
return false
};
if (this.checkManyou()) {
& |
|