⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 qq3.js

📁 驱动开发的一些资料
💻 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 + -