|
本帖最后由 kangatang 于 2014-10-31 15:20 编辑
wcymiss 发表于 2014-10-29 16:27 ![](static/image/common/back.gif)
复杂登录二:58同城登录
285楼的执行网页脚本的方法非常值得学习,记得这是当初楼主的代码,我借花献佛,帮你阐述285的核心技术。
在内存中创建 htmlfile对象,再装入html脚本(只要是Javascript, jquery代码或链接地址)。当然事先将这些JS代码GET一下,装入本地缓存。 一般来讲,第二次get那些链接地址时(htmlfil加载时会自动get),系统默认直接从缓存中读取,这样的好处是,不会因为JS代码未加载完就执行JS函数。
Sub Main()
Dim strHtml As String
Dim objDoc As Object
Dim objWin As Object
Dim strScript As String
Dim t
Set objXML = CreateObject("MSXML2.XMLHTTP")
arrJSFile = Array("http://code.jquery.com/jquery-1.10.2.min.js", "http://www.veryhuo.com/uploads/Common/js/jQuery.md5.js") '要加载的js文件名
'先下载JS文件到缓存(GET请求一次即可),以提高DOM加载JS文件的速度。(否则加载会有延迟)
For i = 0 To 1
objXML.Open "GET", arrJSFile(i), False
objXML.Send
Next
strHtml = "<!DOCTYPE html><html><head>"
strHtml = strHtml & "<script src='http://code.jquery.com/jquery-1.10.2.min.js'></script>"
strHtml = strHtml & "<script src='http://www.veryhuo.com/uploads/Common/js/jQuery.md5.js'></script>"
strHtml = strHtml & "</head></html>"
Set objDoc = CreateObject("htmlfile")
objDoc.write strHtml
Set objWin = objDoc.parentWindow
strScript = "var md = $.md5('我爱你中国!')"
objWin.execScript strScript, "JavaScript" '执行JS函数
Debug.Print objWin.md
Set objXML = Nothing
End Sub
|
|