VBScript中的对象top
我和我的队友都被这个谜团搞砸了 当我们追踪一些代码时,我们遇到了类似这样的情况VBScript中的对象top,vbscript,Vbscript,我和我的队友都被这个谜团搞砸了 当我们追踪一些代码时,我们遇到了类似这样的情况 top.VARIABLE_NAME top.FunctionName(param) 我们试图跟踪对象top的代码,但它没有在项目中的任何地方声明,因此我们认为它是全局变量的VBScript内置对象,但没有相关文档 到目前为止,我们注意到这行代码 ExecuteGlobal(strCode) 这可能是顶部物体的原因吗?请帮助我们理解这一点 更新 这很奇怪,但是我们当前项目的HTML包含很多框架。但我不知道这是否
top.VARIABLE_NAME
top.FunctionName(param)
我们试图跟踪对象top的代码,但它没有在项目中的任何地方声明,因此我们认为它是全局变量的VBScript内置对象,但没有相关文档
到目前为止,我们注意到这行代码
ExecuteGlobal(strCode)
这可能是顶部物体的原因吗?请帮助我们理解这一点
更新
这很奇怪,但是我们当前项目的HTML包含很多框架。但我不知道这是否是使用“top”的原因
下面是ExecuteGlobal(strCode)的完整代码/实现
如果我打印strCode,它包含这个值
sub HtmlCreator(arrObj)
for i = LBound(arrObj) to UBound(arrObj)
if not isEmpty(arrObj(i)) then
arrObj(i).innerHtml = "me"
end if
next
end sub
很抱歉,由于保密的原因,我不能发布确切的代码,但我希望你能理解。
谢谢。是DOM层次结构中的顶级窗口
演示:
MsgBox TypeName(window.top)&“&CStr(window.top为top)&”&CStr(window为top)
嗨,我想这不是我要找的。也许像top.window这样的东西已经足够近了,因为我正在寻找top作为对象而不是对象的成员。@Thorax-你认为我为什么在演示中包括CStr(window是top)
?对不起,我不知道这是什么意思CStr(window是top)
。在我们当前的项目中,所有全局函数和变量都需要有前缀top(例如:top.myVar)。如果我没有弄错的话,我在项目中没有看到与windows位置相关的任何内容。可以通过友好方式创建对象。将找到的ExecuteGlobal(strCode)
代码替换为MsgBox strCode:ExecuteGlobal(strCode)
,用于调试目的,或者使用任何调试器,如MS脚本编辑器(使用/D
指令通过egWScript.exe启动脚本),VbsEdit或primarscript来检查strCode的值。我想这就是我要找的,但我现在不能尝试。明天我将根据您的评论评论我的发现,谢谢:)嗨@omegastripes,strCode包含特定文件的子/函数。我将更新我的问题,以获得ExecuteGlobal(strCode)的完整代码/实现。是的,您已经找到了。我看到了“include”sub的常见实现。strCode
值是多少?@omegastripes-strCode包含strFile的代码。我将在问题中更新strCode的整个值。谢谢
sub HtmlCreator(arrObj)
for i = LBound(arrObj) to UBound(arrObj)
if not isEmpty(arrObj(i)) then
arrObj(i).innerHtml = "me"
end if
next
end sub
<html>
<head>
<script type="text/vbscript">
MsgBox TypeName(window.top) & " " & CStr(window.top Is top) & " " & CStr(window Is top)
</script>
</head>
<body>
</body>
</html>