📄 qq3.js
字号:
var Msg1 = "对不起,此链接需要安装超级旋风1.7Beta2以上版本才能正常下载,请您安装后重试。";
var Msg2 = "对不起,本页面暂时只支持IE或使用IE内核和FireFox等相关浏览器。";
var Msg3 = "被Firefox浏览器拒绝\n请按照下面步骤解决该问题\n1 在FireFox浏览器地址栏输入about:config并回车\n然后将signed.applets.codebase_principal_support设置为true后再刷新页面\n2 如果按照1所列举步骤不能解决问题\n则还需要使用文本编辑器打开文件夹<系统盘符:\Documents and Settings\用户名\Application Data\Mozilla\Firefox\Profiles\***.default>下面的文件prefs.js\n查找字符串UniversalXPConnect,将相应文本行中的denied修改为granted";
var Msg4 = "请确认是否安装超级旋风1.7Beta2以上版本,如果安装请确认是否在安装的过程中选择对firefox的支持,或者在工具菜单中选择浏览器支持";
var Msg5 = "对不起,该链接需要1.8.188.201以上版本才能下载,请升级版本后使用";
var MainURI = "http://xf.qq.com/cyclone/download.shtml";
var ERR_OK = 0;
var ERR_VERSION_TOO_LOWLY = 1;
var ERR_NOT_SUPPORT_EXPLORER = 2;
var ERR_NOT_ENOUGH_PRIVILEGE = 3;
var ERR_NOT_INSTALL_QQDOWNLOAD = 4;
var ERR_FORBID_QQDOWNLOAD = 5;
var ERR_NOT_SUPPORT_PROTOCOL = 6;
var ERR_ED2K_NO_QQDOWNLOAD = 7;
var g_comFFDownload = null;
var g_comIEQQDownload = null;
var NT_IE = 0;
var NT_FIREFOX = 1;
var NT_OPERA = 2;
var NT_NETSCAPE = 3;
var NT_SAFARI = 4;
var NT_UNKNOWN = 0XFFFF;
var g_lastMiniSecond = 0;
var g_lastUrl = "";
function IEValidateCheck(uri)
{
var today = new Date();
var curMiniSecond = today.getTime();
delete today;
if (g_lastUrl == uri && g_lastUrl != "" && curMiniSecond - g_lastMiniSecond < 2500)
{
g_lastMiniSecond = curMiniSecond;
return false;
}
g_lastUrl = uri;
g_lastMiniSecond = curMiniSecond;
return true;
}
function WhichBrowser()
{
if(navigator.userAgent.indexOf("Opera")>=0)
{
return 3;
}
else if(navigator.userAgent.indexOf("MSIE")>=0)
{
return 1;
}
else if(navigator.userAgent.indexOf("Firefox")>=0)
{
return 2;
}
else
{
return 3;
}
}
function dlInit(){
if (WhichBrowser() == 3){
elQhrefs = [];
elQhrefs = document.getElementsByTagName("a");
if (elQhrefs == ""){
return;
}
else
{
for (var i = 0; i<elQhrefs.length; i++){
var elQhrefContent = elQhrefs[i].getAttribute("QHref");
if (elQhrefContent){
elQhrefs[i].href = elQhrefContent;
}
}
}
}
}
function GetNavigatorType()
{
if ((navigator.appName.indexOf("Internet Explorer") != -1) && (navigator.userAgent.indexOf("Opera") == -1))
{
return NT_IE;
}
else if (navigator.appName.indexOf("Netscape") != -1)
{
if (navigator.userAgent.indexOf("Navigator") != -1)
{
return NT_NETSCAPE;
}
else if (navigator.userAgent.indexOf("Firefox") != -1)
{
return NT_FIREFOX;
}
else if (navigator.userAgent.indexOf("Safari") != -1)
{
return NT_SAFARI;
}
}
else if ((navigator.appName.indexOf("Opera") != -1) || (navigator.userAgent.indexOf("Opera") != -1))
{
return NT_OPERA;
}
return NT_UNKNOWN;
}
function BuildUri(uri, ref, remark, cookie, rate, sid, filesize, filehash, isU2A)
{
var loc = "";
if (uri.indexOf("qqdl://") != -1)
{
loc = uri +"\x01\x01";
}
else
{
loc = SchemeEncode(uri, isU2A);
}
loc += "\x01\x01" + ref
+ "\x01\x01" + remark
+ "\x01\x01" + cookie
+ "\x01\x01" + rate.toString(10)
+ "\x01\x01" + sid.toString(10)
+ "\x01\x01" + filesize
+ "\x01\x01" + filehash;
return loc;
}
function CreateIEObject()
{
if (g_comIEQQDownload == null)
{
try
{
g_comIEQQDownload = new ActiveXObject("QQIEHelper.QQRightClick.2");
return (g_comIEQQDownload == null) ? false : true;
}
catch(e)
{
return false;
}
}
return true;
}
function CreateFFObject()
{
if (g_comFFDownload == null)
{
try
{
g_comFFDownload = Components.classes["@qq.com/QQDownloadFFH;1"].createInstance();
g_comFFDownload = g_comFFDownload.QueryInterface(Components.interfaces.IQQDownloadFFH);
return (g_comFFDownload == null) ? false : true;
}
catch (e)
{
return false;
}
}
return true;
}
function OnIEDownloadClick(uri, ref, remark, cookie, rate, sid, filesize, filehash)
{
if (CreateIEObject())
{
var ver = g_comIEQQDownload.GetVersion();
ver = ver.split(".");
if (uri.indexOf("ed2k://") != -1 && parseInt(ver[3]) < 188)
{
return ERR_NOT_SUPPORT_PROTOCOL;
}
if(parseInt(ver[3]) >= 157)
{
g_comIEQQDownload.SendUrl3(uri, ref, remark, cookie, rate, sid, filesize, filehash);
return ERR_OK;
}
else if(parseInt(ver[3]) >= 127)
{
g_comIEQQDownload.SendUrl2(uri, ref, remark, cookie, rate, sid);
return ERR_OK;
}
else if(parseInt(ver[3]) > 65)
{
g_comIEQQDownload.SendUrl(uri, ref, remark, cookie);
return ERR_OK;
}
else
{
return ERR_VERSION_TOO_LOWLY;
}
}
else
{
if (uri.indexOf("ed2k://") != -1)
{
return ERR_ED2K_NO_QQDOWNLOAD;
}
else if (navigator.appVersion.indexOf("QQDownload") != -1)
{
return ERR_FORBID_QQDOWNLOAD
}
else
{
return ERR_NOT_INSTALL_QQDOWNLOAD;
}
}
}
function OnFFDownloadClick(uri, ref, remark, cookie, rate, sid, filesize, filehash)
{
try
{
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
}
catch(e)
{
if (navigator.appVersion.indexOf("QQDownload") != -1)
{
return ERR_FORBID_QQDOWNLOAD
}
else
{
return ERR_NOT_ENOUGH_PRIVILEGE;
}
}
if (CreateFFObject())
{
try
{
g_comFFDownload.SendSingleTask3(uri, ref, remark, cookie, 1, rate, sid, filesize, filehash);
}
catch(e)
{
try
{
g_comFFDownload.SendSingleTask2(uri, ref, remark, cookie, 1, rate, sid);
}
catch(e)
{
if(g_comFFDownload.SendSingleTask(uri, ref, remark, cookie, 1)!= 0)
{
}
}
}
return ERR_OK;
}
else
{
if (navigator.appVersion.indexOf("QQDownload") != -1)
{
return ERR_FORBID_QQDOWNLOAD
}
else
{
return ERR_NOT_INSTALL_QQDOWNLOAD;
}
}
}
function OnIEContextClick(linkObj)
{
linkObj.href = linkObj.QHref;
}
function OnFFContextClick(event)
{
var element = event.target;
element.setAttribute("href", element.getAttribute("QHref"));
}
function XFOnDownloadClick(linkObj, event, uri, ref, remark, cookie, rate, sid, filesize, filehash, defopen, isU2A)
{
var ret = ERR_OK;
switch (GetNavigatorType())
{
case NT_IE:
{
if (false == IEValidateCheck(uri))
{
return true;
}
linkObj.href = "#";
ret = OnIEDownloadClick(uri, ref, remark, cookie, rate, sid, filesize, filehash);
}
break;
case NT_FIREFOX:
{
var element = event.target;
element.setAttribute("href", "#");
ret = OnFFDownloadClick(uri, ref, remark, cookie, rate, sid, filesize, filehash);
}
break;
default:
{
ret = ERR_NOT_SUPPORT_EXPLORER;
}
break;
}
if (ret == ERR_FORBID_QQDOWNLOAD)
{
window.location.href = BuildUri(uri, ref, remark, cookie, rate, sid, filesize, filehash, isU2A);
}
else if (ret != ERR_OK && defopen)
{
window.location.href = uri;
}
else if (ret == ERR_ED2K_NO_QQDOWNLOAD)
{
window.location.href=uri;
}
else if (ret != ERR_OK)
{
var msg = Msg1;
if (ret == ERR_NOT_SUPPORT_EXPLORER)
{
msg = Msg2;
}
else if (ret == ERR_NOT_ENOUGH_PRIVILEGE)
{
msg = Msg3;
}
else if (ret == ERR_NOT_SUPPORT_PROTOCOL)
{
msg = Msg5;
}
else
{
switch(GetNavigatorType())
{
case NT_IE:
msg = Msg1;
break;
case NT_FIREFOX:
msg = Msg4;
break;
default:
break;
}
}
if (confirm(msg, 2))
{
window.open(MainURI);
}
}
return (ret == ERR_OK) ? true : false;
}
function OnContextClick(linkObj, event)
{
switch (GetNavigatorType())
{
case NT_IE:
{
OnIEContextClick(linkObj);
}
break;
case NT_FIREFOX:
case NT_OPERA:
case NT_NETSCAPE:
{
OnFFContextClick(event);
}
break;
default:
break;
}
}
//不放行
function XFOnDownloadClick_Simple(linkObj, event, sid)
{
var uri = "";
var remark = "";
var ref = "";
var nType = GetNavigatorType();
switch (nType)
{
case NT_IE:
{
uri = linkObj.QHref;
remark = linkObj.innerText;
ref = window.location.href;
}
break;
case NT_FIREFOX:
case NT_OPERA:
case NT_NETSCAPE:
case NT_SAFARI:
{
var element = event.target;
do
{
uri = element.getAttribute("QHref");
try
{
remark = element.text.toString();
}
catch(e)
{
}
ref = window.location;
element = element.parentNode;
}while(uri == null && element != this.ownerDocument);
}
break;
default:
break;
}
if (nType == NT_IE || nType == NT_FIREFOX)
{
XFOnDownloadClick(linkObj, event, uri, ref, remark, document.cookie, 0, sid, 0, 0, false,true);
}
else
{
window.location.href=uri;
}
}
//放行
function XFOnDownloadClick_QQ(linkObj, event, sid)
{
var uri = "";
var remark = "";
var ref = "";
var nType = GetNavigatorType();
switch (nType)
{
case NT_IE:
{
uri = linkObj.QHref;
remark = linkObj.innerText;
ref = window.location.href;
}
break;
case NT_FIREFOX:
case NT_OPERA:
case NT_NETSCAPE:
case NT_SAFARI:
{
var element = event.target;
do
{
uri = element.getAttribute("QHref");
try
{
remark = element.text.toString();
}
catch(e)
{
}
ref = window.location;
element = element.parentNode;
}while(uri == null && element != this.ownerDocument);
}
break;
default:
break;
}
if (nType == NT_IE || nType == NT_FIREFOX)
{
XFOnDownloadClick(linkObj, event, uri, ref, remark, document.cookie, 0, sid, 0, 0, true,false);
}
else
{
window.location.href=uri;
}
}
function XFOnDownloadClick_Game(linkObj, event, sid, rate, isWChar)
{
var uri = "";
var remark = "";
var ref = "";
var nType = GetNavigatorType();
switch (nType)
{
case NT_IE:
{
uri = linkObj.QHref;
remark = linkObj.innerText;
ref = window.location.href;
}
break;
case NT_FIREFOX:
case NT_OPERA:
case NT_NETSCAPE:
case NT_SAFARI:
{
var element = event.target;
do
{
uri = element.getAttribute("QHref");
try
{
remark = element.text.toString();
}
catch(e)
{
}
ref = window.location;
element = element.parentNode;
}while(uri == null && element != this.ownerDocument);
}
break;
default:
break;
}
if (nType == NT_IE || nType == NT_FIREFOX)
{
XFOnDownloadClick(linkObj, event, uri, ref, remark, document.cookie, rate, sid, 0, 0, false,isWChar);
}
else
{
window.location.href=uri;
}
}
function XFOnDownloadClick_xw(linkObj, event, ref, remark, filesize, filehash)
{
var uri = "";
var nType = GetNavigatorType();
switch (nType)
{
case NT_IE:
{
uri = linkObj.QHref;
}
break;
case NT_FIREFOX:
case NT_OPERA:
case NT_NETSCAPE:
case NT_SAFARI:
{
var element = event.target;
do
{
uri = element.getAttribute("QHref");
element = element.parentNode;
}while(uri == null && element != this.ownerDocument);
}
break;
default:
break;
}
if (nType == NT_IE || nType == NT_FIREFOX)
{
return XFOnDownloadClick(linkObj, event, uri, ref, remark, "", 0, 10001, filesize, filehash, false,true);
}
else
{
window.location.href=uri;
return true;
}
}
function XFOnDownloadClick_easy(linkObj, event, uri, sid)
{
var ref = "";
switch (GetNavigatorType())
{
case NT_IE:
{
ref = window.location.href;
}
break;
case NT_FIREFOX:
case NT_OPERA:
case NT_NETSCAPE:
case NT_SAFARI:
{
ref = window.location;
}
break;
default:
break;
}
if (nType == NT_IE || nType == NT_FIREFOX)
{
XFOnDownloadClick(linkObj, event, uri, ref, "", document.cookie, 0, sid, 0, 0, false,true);
}
else
{
window.location.href=uri;
}
}
window.onload = dlInit;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -