迅雷平台接口函数定义
GetInfo
BSTR GetInfo(BSTR pInfoName)
功能:获得迅雷或平台相关信息
参数:
pInfoName 信息名称,有如下4种
“ThunderExists”:迅雷是否存在
“ThunderRunning”:迅雷是否运行
“ThunderVersion”:迅雷版本号
“PlatformVersion”:平台版本号
返回值:返回值是字符串与参数pInfoName有对应关系
参数 返回值
“ThunderExists” “true”存在,“false”不存在
“ThunderRunning” “true” 运行中, “false”未运行
“ThunderVersion” 迅雷版本号 “x.x.x.x”
“PlatformVersion” 平台版本号 “x.x.x.x”
GetInfoStruct
HRESULT GetInfoStruct(INT pInfo)
功能:获取迅雷或平台相关全部信息
参数:
pInfo 其实是THUNDER_INFO类型的结构指针,调用前把它转换为INT类型;调用后结构中将填充平台信息,定义如下:
typedef struct _THUNDER_INFO
{
BOOL bThunderExists;
BOOL bThunderRunning;
CHAR szThunderVersion[32];
CHAR szPlatformVersion[32];
} THUNDER_INFO;
函数调用后,结构中将填充相应的信息。
返回值:
0 获取成功
非0 获取失败
AddTask
HRESULT AddTask(BSTR pURL,BSTR pFileName = "",BSTR pPath = "",BSTR pComments = "",BSTR pReferURL = "",INT nStartMode = -1,INT nOnlyFromOrigin = 0,INT nOriginThreadCount = -1);
功能:往平台加入下载任务信息,此时尚未体现到迅雷中
参数:
pURL 目标URL,必须参数
pFileName 另存名称,默认为空,表示由迅雷处理,可选参数
pPath 存储目录,默认为空,表示由迅雷处理,可选参数
pComments 下载注释,默认为空,可选参数
pReferURL 引用页URL,默认为空,可选参数
nStartMode 开始模式,0手工开始,1立即开始,默认为-1,表示由迅雷处理,可选参数
nOnlyFromOrigin 是否只从原始URL下载,1只从原始URL下载,0多资源下载,默认为0,可选参数
nOriginThreadCount 原始地址下载线程数,范围1-10,默认为-1,表示由迅雷处理,可选参数
CommitTaskss
HRESULT CommitTaskss()
功能:把AddTask所加入的下载任务信息真正提交到迅雷中进行下载,并从平台中删除
注意:如果AddTask添加的任务没有被提交没有被取消(调用CancelTasks),则Agent对象析构时会阻塞,所以调用者不应该残留一些没有被提交或者取消的任务,以避免脚本执行者停止响应。
CancelTasks
HRESULT CancelTasks()
功能:取消平台中所有由AddTask所加入的下载任务信息
GetTaskInfo
BSTR GetTaskInfo(BSTR pURL,BSTR pInfoName);
功能:查询任务信息
参数:
pURL 所要查询的下载URL信息
pInfoName 状态名称,有如下几种
“Exists”:pURL是否在迅雷的任务列表
“Path”:存储目录
“FileName”:文件名称
“FileSize”:文件大小
“CompletedSize”:已下载大小
“Percent”:下载进度
“Status”:任务状态
返回值: 返回值是字符串与参数pInfoName有对应关系
参数 返回值
“Exists” ”true”存在,”false”不存在
“Path” 存储目录,最后带反斜线\,例:C:\TDDownload\
“FileName” 文件名称
“FileSize” 文件大小,以字节为单位,0表示大小未知
“CompletedSize” 已下载大小,以字节为单位
“Percent” 下载进度,带1位小数,例:70.0
“Status” 任务状态,有以下6种状态
“running”: 运行状态
“stopped”: 停止状态
“failed”: 失败状态
“success”: 成功状态
“creatingfile”:正在创建数据文件
“connecting”: 正在连接
GetTaskInfoStruct
GetTaskInfoStruct(INT pTaskInfo)
功能:查询一个任务的所有信息
参数
pTaskInfo 其实是THUNDER_TASKINFO类型的结构指针,调用前把它转换为INT类型;调用后结构中将填充平台信息,定义如下:
typedef struct _THUNDER_TASKINFO
{
CHAR szURL[1024]; // 任务URL,预先填充
BOOL bTaskExists; // 任务是否存在,TRUE为存在
CHAR szPath[256]; // 下载的本地保存路径
CHAR szFileName[256]; // 本地文件名
ULONGLONG nFileSize; // 文件大小
ULONGLONG nCompletedSize; // 已完成的大小
CHAR szPercent[16]; // 完成的百分数,用 “56.8”的格式
CHAR szStatus[16]; // 当前状态,定义同GetTaskInfo函数
} THUNDER_TASKINFO;
调用者先填充结构中的szURL成员,来指定需要查询的任务的URL,然后等函数返回后就可以从其他成员中取得该任务的信息。
实例
Imports System
Imports System.Text
Public Class frmThunderClass frmThunder
Private _iStartMode As Integer '讯雷任务下载开始模式
Private ThunderEng As New THUNDERAGENTLib.Agent '创建讯雷调用对象
Sub frmThunder_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs)
Handles MyBase.Load
End Sub
Sub btnCancel_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs)
Handles btnCancel.Click
Close()
End Sub
'开始下载任务
Sub btnStartDown_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs)
Handles btnStartDown.Click
Dim iOnlyFromOrigin, iOriginThreadCount As Integer
iOnlyFromOrigin = IIf(chkOnlyFromOrigin.Checked = True, 1, 0)
iOriginThreadCount = CInt(txtOriginThreadCounts.Text)
If chkDefault.Checked Then
iOriginThreadCount = -1
End If
ThunderEng.AddTask(txtURL.Text, txtSaveAsFileName.Text, txtSaveDir.Text, _
txtComment.Text, txtReferencePage.Text, _iStartMode, _
iOnlyFromOrigin, iOriginThreadCount)
ThunderEng.CommitTasks()
Timer1.Enabled = True
End Sub
Sub radMaual_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs)
Handles radMaual.Click, _
radImmediate.Click, _
radDefault.Click
Dim rad As RadioButton = CType(sender, RadioButton)
_iStartMode = CInt(rad.Tag)
End Sub
'当任务开始时定时查询任务下载信息
Sub Timer1_Tick(ByVal sender As System.Object, _
ByVal e As System.EventArgs)
Handles Timer1.Tick
Dim sFileSize, sDownedSize, sStatus, sFileName, sPercent As String
Try
sStatus = ThunderEng.GetTaskInfo(txtURL.Text, "Status")
sFileSize = ThunderEng.GetTaskInfo(txtURL.Text, "FileSize")
sDownedSize = ThunderEng.GetTaskInfo(txtURL.Text, "CompletedSize")
sFileName = ThunderEng.GetTaskInfo(txtURL.Text, "FileName")
lblDownedSize.Text = String.Format(lblDownedSize.Tag, sDownedSize)
lblFileSize.Text = String.Format(lblFileSize.Tag, sFileSize)
lblTaskStatus.Text = String.Format(lblTaskStatus.Tag, sStatus)
lblFilename.Text = String.Format(lblFilename.Tag, sFileName)
sPercent = ThunderEng.GetTaskInfo(txtURL.Text, "Percent") '获取下载百分比
lblProgress.Text = String.Format(lblProgress.Tag, sPercent.Remove(3,Len(sPercent) - 3))
Catch ex As Exception
End Try
End Sub
Sub chkOnlyFromOrigin_CheckedChanged_1(ByVal sender As System.Object,
ByVal e As System.EventArgs)
Handles chkOnlyFromOrigin.CheckedChanged
Panel1.Enabled = chkOnlyFromOrigin.Checked
End Sub
Sub GroupBox1_Enter(ByVal sender As System.Object,
ByVal e As System.EventArgs)
Handles GroupBox1.Enter
End Sub
End Class
'进入工具--配置--高级,把 通过IE右键菜单 “使用迅雷下载”添加任务 这个选项前面的勾去掉。
'保持迅雷开启状态,这时候执行上面的脚本,就不会出现那个确认添加任务的对话框了。
VBS自定义函数
'nStartMode开始模式,0手工开始,1立即开始,默认为-1,表示由迅雷处理,可选参数
'nOnlyFromOrigin是否只从原始URL下载,1只从原始URL下载,0多资源下载,默认为0,可选参数
'nOriginThreadCount原始地址下载线程数,范围1-10,默认为-1,表示由迅雷处理,可选参数
Public Function 迅雷下载(网址 As String, Optional 保存路径 As String, Optional 另存为文件名 As String, Optional 下载注释 As String, Optional 引用页 As String, Optional 开始模式 As Long = 1, Optional 否只从原始网址下载 As Boolean = False, Optional 原始地址下载线程数 As Long = 5) As Boolean
On Error GoTo Err
Dim ThunderAgent
Set ThunderAgent = CreateObject("ThunderAgent.Agent.1")
If ThunderAgent Is Nothing Then GoTo Err
Call ThunderAgent.AddTask(网址, 另存为文件名, 保存路径, 下载注释, 引用页, 开始模式, 否只从原始网址下载, 原始地址下载线程数)
Call ThunderAgent.CommitTasks2(1)
Set ThunderAgent = Nothing
迅雷下载 = True
Exit Function
Err:
迅雷下载 = False
End Function
CommitTasks?CommitTasks2?
参考
迅雷自带脚本
getAllurl.htm
<script language="VBScript">
Sub OnContextMenu()
on error resume next
set ThunderAgent = CreateObject("ThunderAgent.Agent.1")
if err.number <> 0 then
On Error Goto 0
set ThunderAgent = CreateObject("ThunderAgent.Agent64.1")
end if
If ThunderAgent.ConfirmRectMode = 0 Then
set links = external.menuArguments.document.links
set images = external.menuArguments.document.images
set strCharSet = external.menuArguments.document.charset
link_count = links.length
image_count = images.length
On Error Resume Next
strDownloadPage = external.menuArguments.document.url
set theDownloadPage = external.menuArguments.document.getElementById("thunder_down_pageurl")
if TypeName(theDownloadPage) <> "Nothing" then
strDownloadPage = theDownloadPage.value
end if
strStatPage = ""
set theStatPage = external.menuArguments.document.getElementById("thunder_stat_pageurl")
if TypeName(theStatPage) <> "Nothing" then
strStatPage = theStatPage.value
end if
On Error Goto 0
if strStatPage <> "" then
for i = 0 to link_count-1
On Error Resume Next
call ThunderAgent.AddTask12(links(i).href, "", "", links(i).innerText, strDownloadPage, strCharset, -1, 0, -1, external.menuArguments.document.cookie, "", strStatPage, 0, "rightup")
if err.number <> 0 then
On Error Goto 0
call ThunderAgent.AddTask4(links(i).href, "", "", links(i).innerText, strDownloadPage, -1, 0, -1, external.menuArguments.document.cookie, "", strStatPage)
end if
On Error Resume Next
next
for i = 0 to image_count-1
On Error Resume Next
call ThunderAgent.AddTask12(images(i).src, "", "", images(i).innerText, strDownloadPage, strCharset, -1, 0, -1, external.menuArguments.document.cookie, "", strStatPage, 0, "rightup")
if err.number <> 0 then
On Error Goto 0
call ThunderAgent.AddTask4(images(i).src, "", "", images(i).innerText, strDownloadPage, -1, 0, -1, external.menuArguments.document.cookie, "", strStatPage)
end if
On Error Resume Next
next
else
for i = 0 to link_count-1
On Error Resume Next
call ThunderAgent.AddTask12(links(i).href, "", "", links(i).innerText, strDownloadPage, strCharset, -1, 0, -1, external.menuArguments.document.cookie, "", "", 0, "rightup")
if err.number <> 0 then
On Error Goto 0
call ThunderAgent.AddTask4(links(i).href, "", "", links(i).innerText, strDownloadPage, -1, 0, -1, external.menuArguments.document.cookie, "", "")
end if
On Error Resume Next
next
for i = 0 to image_count-1
On Error Resume Next
call ThunderAgent.AddTask12(images(i).src, "", "", images(i).innerText, strDownloadPage, strCharset, -1, 0, -1, external.menuArguments.document.cookie, "", "", 0, "rightup")
if err.number <> 0 then
On Error Goto 0
call ThunderAgent.AddTask4(images(i).src, "", "", images(i).innerText, strDownloadPage, -1, 0, -1, external.menuArguments.document.cookie, "", "")
end if
On Error Resume Next
next
end if
call ThunderAgent.CommitTasks2(1)
Else
ThunderAgent.AddTaskInRect()
End If
set ThunderAgent = nothing
end sub
call OnContextMenu()
</script>
geturl.htm
<script language="javascript">
function AddLink(Url,Info,Location,strCID,strStatUrl,strCookie,strCharset)
{
if (Url != "")
{
if (Info == "")
{
Info = "unknown";
}
try
{
var ThunderAgent = new ActiveXObject("ThunderAgent.Agent");
}
catch(e)
{
ThunderAgent = new ActiveXObject("ThunderAgent.Agent64");
}
try
{
ThunderAgent.AddTask12(Url, "", "", Info, Location, strCharset, -1, 0, -1, strCookie, strCID, strStatUrl, 0, "rightup");
}
catch(e)
{
try
{
ThunderAgent.AddTask5(Url, "", "", Info, Location, -1, 0, -1, strCookie, strCID, strStatUrl, 1, "", -1);
}
catch(e)
{
ThunderAgent.AddTask2(Url, "", "", Info, Location, -1, 0, -1, strCookie);
}
}
ThunderAgent.CommitTasks2(1);
}
}
function OnContextMenu()
{
var srcEvent = external.menuArguments.event;
var EventElement = external.menuArguments.event.srcElement;
if(typeof(EventElement) == "undefined")
{
if(typeof(srcEvent.clientX) == "undefined")
{
EventElement = external.menuArguments.document.elementFromPoint ( srcEvent.pointerX, srcEvent.pointerY );
}
else
{
EventElement = external.menuArguments.document.elementFromPoint ( srcEvent.clientX, srcEvent.clientY );
}
}
var strDownloadPage = external.menuArguments.location;
var theDownloadPage = external.menuArguments.document.getElementById("thunder_down_pageurl");
var strCharSet = external.menuArguments.document.charset;
if (theDownloadPage != null)
{
strDownloadPage = theDownloadPage.value;
}
var strStatPage = "";
var theStatPage = external.menuArguments.document.getElementById("thunder_stat_pageurl");
if (theStatPage != null)
{
strStatPage = theStatPage.value;
}
var strCID = ""
var theCID = external.menuArguments.document.getElementById("thunder_cid");
if (theCID != null)
{
strCID = theCID.value;
}
var srcAnchor;
if (srcEvent.type == "MenuExtAnchor")
{
srcAnchor = EventElement;
do
{
srcAnchor=srcAnchor.parentElement;
}while(typeof(srcAnchor)=="HTMLAnchorElement");
AddLink(srcAnchor.href,srcAnchor.innerText,strDownloadPage, strCID, strStatPage,external.menuArguments.document.cookie,strCharSet);
}
else if (srcEvent.type == "MenuExtImage")
{
if (typeof(EventElement) == "HTMLAreaElement")
{
AddLink(EventElement.href,EventElement.Alt,strDownloadPage, strCID, strStatPage,external.menuArguments.document.cookie,strCharSet);
}
else
{
var srcImage = EventElement;
var srcAnchor = srcImage.parentElement;
do
{
srcAnchor=srcAnchor.parentElement;
if (typeof(srcAnchor) == "undefined")
{
AddLink(srcImage.href,srcImage.Alt,strDownloadPage, strCID, strStatPage,external.menuArguments.document.cookie,strCharSet);
return;
}
}while(typeof(srcAnchor) == "HTMLAnchorElement");
AddLink(srcAnchor.href,srcImage.Alt,strDownloadPage, strCID, strStatPage,strCharSet);
}
}
else if (srcEvent.type == "MenuExtUnknown")
{
srcAnchor = EventElement;
if(srcAnchor != null && srcAnchor.tagName != null && srcAnchor.tagName.toLowerCase() == "a")
{
try
{
AddLink(srcAnchor.href,srcAnchor.innerText,strDownloadPage, strCID, strStatPage,external.menuArguments.document.cookie,strCharSet);
}
catch(e)
{
alert("网页数据格式错误,无法下载,请尝试用鼠标左键点击下载。");
}
}
else
{
while(srcAnchor != null && srcAnchor.tagName != null && srcAnchor.tagName.toLowerCase() != "a")
{
srcAnchor = srcAnchor.parentElement;
if(srcAnchor != null && srcAnchor.tagName != null && srcAnchor.tagName.toLowerCase() == "a")
{
AddLink(srcAnchor.href,srcAnchor.innerText,strDownloadPage, strCID, strStatPage,external.menuArguments.document.cookie,strCharSet);
return;
}
}
if(EventElement != null && EventElement.tagName != null)
{
AddLink(EventElement.href,EventElement.innerText,strDownloadPage, strCID, strStatPage,external.menuArguments.document.cookie,strCharSet);
}
else
{
alert("无法识别的超级链接信息");
}
}
}
else
{
}
}
OnContextMenu();
</script>
minixlgetAllurl.htm
<script language="VBScript">
Sub OnContextMenu()
set ThunderAgent = CreateObject("ThunderAgent.Agent.1")
If ThunderAgent.ConfirmRectMode = 0 Then
set links = external.menuArguments.document.links
set images = external.menuArguments.document.images
link_count = links.length
image_count = images.length
strDownloadPage = external.menuArguments.document.url
set theDownloadPage = external.menuArguments.document.getElementById("thunder_down_pageurl")
if TypeName(theDownloadPage) <> "Nothing" then
strDownloadPage = theDownloadPage.value
end if
strStatPage = ""
set theStatPage = external.menuArguments.document.getElementById("thunder_stat_pageurl")
if TypeName(theStatPage) <> "Nothing" then
strStatPage = theStatPage.value
end if
if strStatPage <> "" then
for i = 0 to link_count-1
call ThunderAgent.AddTask5(links(i).href, "", "", links(i).innerText, strDownloadPage, -1, 0, -1, external.menuArguments.document.cookie, "", strStatPage, 1)
next
for i = 0 to image_count-1
call ThunderAgent.AddTask5(images(i).src, "", "", images(i).innerText, strDownloadPage, -1, 0, -1, external.menuArguments.document.cookie, "", strStatPage, 1)
next
else
for i = 0 to link_count-1
call ThunderAgent.AddTask5(links(i).href, "", "", links(i).innerText, strDownloadPage, -1, 0, -1, external.menuArguments.document.cookie, "", "", 1)
next
for i = 0 to image_count-1
call ThunderAgent.AddTask5(images(i).src, "", "", images(i).innerText, strDownloadPage, -1, 0, -1, external.menuArguments.document.cookie, "", "", 1)
next
end if
call ThunderAgent.CommitTasks5(1, 1)
Else
ThunderAgent.AddTaskInRect2()
End If
set ThunderAgent = nothing
end sub
call OnContextMenu()
</script>
minixlgeturl.htm
<script language="javascript">
function AddLink(Url,Info,Location,strCID,strStatUrl,strCookie)
{
if (Url != "")
{
if (Info == "")
{
Info = "unknown";
}
var ThunderAgent = new ActiveXObject("ThunderAgent.Agent");
if (strCID != "")
{
if (strStatUrl != "")
{
ThunderAgent.AddTask5(Url, "", "", Info, Location, -1, 0, -1, strCookie, strCID, strStatUrl, 1, "", -1);
}
else
{
ThunderAgent.AddTask5(Url, "", "", Info, Location, -1, 0, -1, strCookie, strCID, "", 1, "", -1);
}
}
else
{
ThunderAgent.AddTask5(Url, "", "", Info, Location,-1,0,-1,strCookie,"","", 1, "", -1);
}
ThunderAgent.CommitTasks5(1, 1);
}
}
function OnContextMenu()
{
var srcEvent = external.menuArguments.event;
var EventElement;
if(typeof(srcEvent.clientX) == "undefined")
{
EventElement = external.menuArguments.document.elementFromPoint ( srcEvent.pointerX, srcEvent.pointerY );
}
else
{
EventElement = external.menuArguments.document.elementFromPoint ( srcEvent.clientX, srcEvent.clientY );
}
var strDownloadPage = external.menuArguments.location;
var theDownloadPage = external.menuArguments.document.getElementById("thunder_down_pageurl");
if (theDownloadPage != null)
{
strDownloadPage = theDownloadPage.value;
}
var strStatPage = "";
var theStatPage = external.menuArguments.document.getElementById("thunder_stat_pageurl");
if (theStatPage != null)
{
strStatPage = theStatPage.value;
}
var strCID = ""
var theCID = external.menuArguments.document.getElementById("thunder_cid");
if (theCID != null)
{
strCID = theCID.value;
}
var srcAnchor;
if (srcEvent.type == "MenuExtAnchor")
{
srcAnchor = EventElement;
do
{
srcAnchor=srcAnchor.parentElement;
}while(typeof(srcAnchor)=="HTMLAnchorElement");
AddLink(srcAnchor.href,srcAnchor.innerText,strDownloadPage, strCID, strStatPage,external.menuArguments.document.cookie);
}
else if (srcEvent.type == "MenuExtImage")
{
if (typeof(EventElement) == "HTMLAreaElement")
{
AddLink(EventElement.href,EventElement.Alt,strDownloadPage, strCID, strStatPage,external.menuArguments.document.cookie);
}
else
{
var srcImage = EventElement;
var srcAnchor = srcImage.parentElement;
do
{
srcAnchor=srcAnchor.parentElement;
if (typeof(srcAnchor) == "undefined")
{
AddLink(srcImage.href,srcImage.Alt,strDownloadPage, strCID, strStatPage,external.menuArguments.document.cookie);
return;
}
}while(typeof(srcAnchor) == "HTMLAnchorElement");
AddLink(srcAnchor.href,srcImage.Alt,strDownloadPage, strCID, strStatPage);
}
}
else if (srcEvent.type == "MenuExtUnknown")
{
srcAnchor = EventElement;
if(srcAnchor != null && srcAnchor.tagName != null && srcAnchor.tagName.toLowerCase() == "a")
{
try
{
AddLink(srcAnchor.href,srcAnchor.innerText,strDownloadPage, strCID, strStatPage,external.menuArguments.document.cookie);
}
catch(e)
{
alert("网页数据格式错误,无法下载,请尝试用鼠标左键点击下载。");
}
}
else
{
while(srcAnchor != null && srcAnchor.tagName != null && srcAnchor.tagName.toLowerCase() != "a")
{
srcAnchor = srcAnchor.parentElement;
if(srcAnchor != null && srcAnchor.tagName != null && srcAnchor.tagName.toLowerCase() == "a")
{
AddLink(srcAnchor.href,srcAnchor.innerText,strDownloadPage, strCID, strStatPage,external.menuArguments.document.cookie);
return;
}
}
if(EventElement != null && EventElement.tagName != null)
{
AddLink(EventElement.href,EventElement.innerText,strDownloadPage, strCID, strStatPage,external.menuArguments.document.cookie);
}
else
{
alert("无法识别的超级链接信息");
}
}
}
else
{
}
}
OnContextMenu();
</script>
OfflineDownload.htm
<script language="javascript">
function AddLink(Url,Info,Location,strCID,strStatUrl,strCookie)
{
try
{
var UserAgent = new ActiveXObject("UserAgent.Thunder59Agent");
}
catch(e)
{
}
var strJumpKey;
if (UserAgent == null)
{
strJumpKey = '';
}
else
{
strJumpKey = UserAgent.GetJumpKey();
}
var furl = Url;
var yuancheng = 'http://yuancheng.xunlei.com/login.html';
var jump_url = 'http://jump.xunlei.com/jump/?jump_key='+strJumpKey+'&u1=http://lixian.vip.xunlei.com/lixian_login.html?referfrom=rightkey&furl='+encodeURIComponent(furl);
try
{
var winNew = window.open(jump_url);
if ( (winNew!=null) && (winNew.closed))
{
alert('离线下载新建任务页已经被拦截,无法打开。请检查您当前的浏览器配置。');
}
}
catch(e)
{
alert('该浏览器不支持该功能');
}
}
function OnContextMenu()
{
var srcEvent = external.menuArguments.event;
var EventElement;
if(typeof(srcEvent.clientX) == "undefined")
{
EventElement = external.menuArguments.document.elementFromPoint ( srcEvent.pointerX, srcEvent.pointerY );
}
else
{
EventElement = external.menuArguments.document.elementFromPoint ( srcEvent.clientX, srcEvent.clientY );
}
var strDownloadPage = external.menuArguments.location;
var theDownloadPage = external.menuArguments.document.getElementById("thunder_down_pageurl");
if (theDownloadPage != null)
{
strDownloadPage = theDownloadPage.value;
}
var strStatPage = "";
var theStatPage = external.menuArguments.document.getElementById("thunder_stat_pageurl");
if (theStatPage != null)
{
strStatPage = theStatPage.value;
}
var strCID = ""
var theCID = external.menuArguments.document.getElementById("thunder_cid");
if (theCID != null)
{
strCID = theCID.value;
}
var srcAnchor;
if (srcEvent.type == "MenuExtAnchor")
{
srcAnchor = EventElement;
do
{
srcAnchor=srcAnchor.parentElement;
}while(typeof(srcAnchor)=="HTMLAnchorElement");
AddLink(srcAnchor.href,srcAnchor.innerText,strDownloadPage, strCID, strStatPage,external.menuArguments.document.cookie);
}
else if (srcEvent.type == "MenuExtImage")
{
if (typeof(EventElement) == "HTMLAreaElement")
{
AddLink(EventElement.href,EventElement.Alt,strDownloadPage, strCID, strStatPage,external.menuArguments.document.cookie);
}
else
{
var srcImage = EventElement;
var srcAnchor = srcImage.parentElement;
do
{
srcAnchor=srcAnchor.parentElement;
if (typeof(srcAnchor) == "undefined")
{
AddLink(srcImage.href,srcImage.Alt,strDownloadPage, strCID, strStatPage,external.menuArguments.document.cookie);
return;
}
}while(typeof(srcAnchor) == "HTMLAnchorElement");
AddLink(srcAnchor.href,srcImage.Alt,strDownloadPage, strCID, strStatPage);
}
}
else if (srcEvent.type == "MenuExtUnknown")
{
srcAnchor = EventElement;
if(srcAnchor != null && srcAnchor.tagName != null && srcAnchor.tagName.toLowerCase() == "a")
{
AddLink(srcAnchor.href,srcAnchor.innerText,strDownloadPage, strCID, strStatPage,external.menuArguments.document.cookie);
}
else
{
while(srcAnchor != null && srcAnchor.tagName != null && srcAnchor.tagName.toLowerCase() != "a")
{
srcAnchor = srcAnchor.parentElement;
if(srcAnchor != null && srcAnchor.tagName != null && srcAnchor.tagName.toLowerCase() == "a")
{
AddLink(srcAnchor.href,srcAnchor.innerText,strDownloadPage, strCID, strStatPage,external.menuArguments.document.cookie);
return;
}
}
if(EventElement != null && EventElement.tagName != null)
{
AddLink(EventElement.href,EventElement.innerText,strDownloadPage, strCID, strStatPage,external.menuArguments.document.cookie);
}
else
{
alert("无法识别的超级链接信息");
}
}
}
else
{
}
}
OnContextMenu();
</script>