我想通过 vb-script 触发自定义事件。我可以通过 jscript 触发自定义事件
function customEventFn()
{
//function body
};
var element = document.getElementById("elem id");
customEventFn.call(element);
但是这种方法在 Vbscript 中不起作用。任何人都有任何想法在 Vbscript 中实现这一点
我想通过 vb-script 触发自定义事件。我可以通过 jscript 触发自定义事件
function customEventFn()
{
//function body
};
var element = document.getElementById("elem id");
customEventFn.call(element);
但是这种方法在 Vbscript 中不起作用。任何人都有任何想法在 Vbscript 中实现这一点
如果我不熟悉 JS 术语并因此无法正确理解您的问题,请原谅,但是您所说的“自定义事件”是什么意思?两者(JS / VBS)都没有这样的功能。我们可以将函数绑定到SomeObjectWithEnets.ExistingEventName
,例如:
// in JavaScript/JScript
function foo() {
alert(typeof window.onload); // function
alert(typeof this); // object
}
window.onload = foo;
' in VBScript
Sub Foo()
MsgBox TypeName(Window.OnLoad) 'Object
MsgBox TypeName(Me) 'HTMLWindow2
End Sub
Set Window.OnLoad = GetRef("Foo")
从我对 JS 的贫乏知识中我所知道的是,它someFn.call(obj)
只是“注入”(执行)someFn
到obj
作用域中,而这一切都与事件无关。你能在 VBScript 中做到这一点吗?我不这么认为。
[编辑] 在您的第二篇文章之后,我明白您的意思,但怀疑在较旧的 IE 中是否可行。
' IE9+ -------------- -> IE8- --------------
' addEventListener -> attachEvent (but deprecated)
' createEvent -> createEventObject
' initCustomEvent -> no alternative
' dispatchEvent -> no alternative (fireEvent?)
' removeEventListener -> detachEvent (removed too)
我只想在 IE 中触发自定义事件。我可以使用以下代码在 iE9 中触发自定义事件,但它不适用于 IE8 或 IE7(小于 9)。
Function CustomFunction()
me.value ="samplevalue"
me.color = RED
End Function
set customFn = getRef("CustomFunction")
set element = document.getElementById("elemid");
element.addEventListener "OnSampleEvent", customFn
set Event = document.createEvent("sampleEvent")
Event.initCustomEvent "OnSampleEvent", false, false, nil
element.dispatchEvent(Event)
element.removeEventListener "OnSampleEvent", customFn
有什么方法可以在旧版本的 IE 中实现这一点。