DOM示例

; DOM示例.ahk

; DOM 文档:
; 	http://www.w3school.com.cn/example/xdom_examples.asp
; 	http://www.w3schools.com/jsref/dom_obj_all.asp
; 	http://www.w3school.com.cn/htmldom/htmldom_reference.asp

#NoEnv
#SingleInstance Force
SetWorkingDir %A_ScriptDir%
SetBatchLines -1
ListLines Off
ComObjError(False)

; =================================
;		界面
; =================================
Gui, Margin, 0, 0
Gui Add, ActiveX, w800 h500 vWB, Shell.Explorer
Gui, Show

ComObjConnect(wb, "wb_")

; =================================
;		打开网页,并等待加载完毕
; =================================
OpenLoginPage:
WB.Navigate("http://ahkscript.org/boards/ucp.php?mode=login")
While WB.readystate != 4 or WB.busy
	Sleep 10

; 如果已经登录则退出
if !InStr(WB.LocationUrl, "login")
{
	; 退出登录
	WB.document.getElementById("menubar").all.tags("a")[0].Click()
	While WB.readystate != 4 or WB.busy
		Sleep 10

	Goto, OpenLoginPage
}

; =================================
;		修改网页
; =================================
doc := WB.doc
doc.getElementById("username").Disabled := True ; 禁用【用户名输入框】
doc.getElementById("password").Disabled := True ; 禁用【密码输入框】
doc.getElementById("username").style.backgroundColor := "A0FABF" ; 修改【用户名输入框】背景色
doc.getElementById("password").style.backgroundColor := "FDCAAE" ; 修改【密码输入框】背景色
doc.getElementById("login").value := "点击登录 :)" ; 修改【登录按钮】文字
doc.getElementById("login").style.Color := "Red"   ; 修改【登录按钮】文字颜色
doc.getElementById("login").style.backgroundColor := "FFFF00" ; 修改【登录按钮】文字颜色
doc.images[0].src := "http://t1.qpic.cn/mblogpic/7d0ba55a04cb2e504246/2000.jpg" ; 修改 logo 图片

; =================================
;		监测事件
; =================================
; 监测 doc 事件
ComObjConnect(doc, doc_events)

; 监测登录按钮所在 form 的事件
form := doc.forms[0]
ComObjConnect(form, "LoginForm_")

; 监测登录按钮事件
LogInBtn := doc.getElementById("login")
ComObjConnect(LogInBtn, "LogInBtn_")

; 监测登录按钮上级事件
LogInBtnPTD := LogInBtn.parentNode
ComObjConnect(LogInBtnPTD, "LogInBtnPTD_")

; =================================
;		设置定时移动登录按钮
; =================================
LogInBtn.style.position := "relative" ; 按钮位置设为相对位置
MoveStep                := -50 ; 按钮移动步伐
BtnW                    := LogInBtn.offsetWidth ; 按钮宽度
BtnPW                   := LogInBtn.parentNode.offsetWidth ; 按钮的上级元素的宽度
SetTimer, Move_LogInBtn, 200
Return

; =================================
;		移动登录按钮
; =================================
Move_LogInBtn:
	x += MoveStep
	LogInBtn.style.left := x

	BtnX := LogInBtn.offsetLeft
	MoveStep := ( BtnX = BtnPW) ) ? -MoveStep : MoveStep
Return

; =================================
;		关闭界面则退出脚本
; =================================
GuiClose:
ExitApp

; ================================================== 以下是函数 ==================================================

; =================================
;		整个 wb 文档的事件
; =================================
Class doc_events
{
	oncontextmenu(doc) {
		doc.parentWindow.event.returnvalue := False ; 取消事件的动作
		MsgBox, 右键被禁用了
	}

	OnClick(doc) {
	    if doc.parentWindow.event.srcElement.name in username,password
	    	doc.parentWindow.event.srcElement.value := doc.parentWindow.event.srcElement.name
	}

	ondblclick(doc) {
		MsgBox, 检测到双击
	}
}

; =================================
;		登录按钮所在 form 的事件
; =================================
LoginForm_onsubmit(form) {
	form.document.parentWindow.event.returnvalue := False ; 取消事件的动作
	form.document.getElementById("login").value := "点击登录 :)" ; 按钮文字会被网页恢复,这里重新修改【登录按钮】文字
	for i, txt in ["你要登录吗","确定要登录吗","真的吗","额...你刚才是要干什么来着?"]
		MsgBox, % txt
}

; =================================
;		登录按钮上级  的事件
; =================================

; 鼠标悬停
LogInBtnPTD_onmouseover(LogInBtn) {
	SetTimer, Move_LogInBtn, Off ; 停止移动按钮
}

; 鼠标移开
LogInBtnPTD_onmouseout(LogInBtn) {
	SetTimer, Move_LogInBtn, 200 ; 恢复移动按钮
}

; =================================
;		登录按钮的事件
; =================================

; 鼠标悬停
LogInBtn_onmouseover(LogInBtn) {
	LogInBtn.style.backgroundColor := "FDD0FD"
}

; 鼠标移开
LogInBtn_onmouseout(LogInBtn) {
	LogInBtn.style.backgroundColor := "FFFF00"
}

给TA捐赠
共{{data.count}}人
人已捐赠
其他

DOC随机复制

2020-3-24 9:51:11

其他

ahk取重复前十的一种方法

2020-3-24 22:11:44

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索