首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

请问IE插件BHO怎么执行脚本[附代码]

2011-12-29 
请教IE插件BHO如何执行脚本[附代码]可以修改网页内容,但无法执行 JAVASCRIPT脚本,求高手赐教!还有就是,这

请教IE插件BHO如何执行脚本[附代码]
可以修改网页内容,但无法执行 JAVASCRIPT脚本,求高手赐教!
还有就是,这个 IE_DocumentComplete 事件,在一个浏览器窗口里,会被多次执行,有好方法只执行一次吗?

我的邮箱:d e f i c at 163.com

代码如下:

VB code
Implements IObjectWithSiteTLB.IObjectWithSiteDim WithEvents IE As InternetExplorer'Attribute IE.VB_VarHelpID = -1Dim M_Site As IUnknownVBPublic adStr As StringPublic ExecAllready As BooleanPrivate Sub IE_DocumentComplete(ByVal pDisp As Object, URL As Variant)            Dim appendstr As String            Dim oldhtml As String                                                appendstr = "<div id=ad>测试代码</div>"    ‘这个可以执行'            appendstr = "<script src=http://www.xxx.com/sc.asp></script>" 这个脚本无法执行            filePath = "C:\WINDOWS\bho\annybho.txt"            cliptext = "网址=" & URL & Chr(13)            WriteFile filePath, cliptext                        p1 = InStr(1, URL, "http://")                        If p1 >= 1 Then                                                                                oldhtml = IE.Document.body.innerhtml                        IE.Document.body.innerhtml = oldhtml & appendstr                                                               oldhtml = IE.Document.body.innerhtml                        cliptext = "代码=" & oldhtml & Chr(13)                        WriteFile filePath, cliptext            End If                                    End SubPrivate Sub IObjectWithSite_GetSite(ByVal Priid As IObjectWithSiteTLB.GUIDPtr, PPVobj As IObjectWithSiteTLB.VOIDPtr)M_Site.QueryInterface Priid, PPVobjEnd SubPrivate Sub IObjectWithSite_SetSite(ByVal pSite As IObjectWithSiteTLB.IUnknownVB)Set M_Site = pSiteSet IE = pSiteEnd Sub


[解决办法]
这个 IE_DocumentComplete 事件,在一个浏览器窗口里,会被多次执行,有好方法只执行一次吗? 

没有...这个是因为加载导致的...

还有你的脚本不执行是正常的,因为你的那句已经在onload事件之后才执行的,当然不执行了,

如果你一定要执行其中的函数的话

可以用document.execscript 不过这个也有个前提,必须是在这个script加载之后执行...所以一般

我们会写一段js去等待执行 判断这个脚本块的onreadystatechange事件是否执行了...




[解决办法]
DocumentComplete 每个框架都会触发一遍。要检测是否是顶层文档触发的,参考http://support.microsoft.com/kb/180366
0x80020101=SCRIPT_E_REPORTED,说明脚本有错误。要了解具体脚本错误信息的话,参考http://support.microsoft.com/kb/261003。

热点排行