我想通过vb-script触发自定义事件。我可以通过jscript
触发自定义事件 function customEventFn()
{
//function body
};
var element = document.getElementById("elem id");
customEventFn.call(element);
但这种方法在Vbscript中不起作用。 任何团体都有任何想法在Vbscript中实现这个目标
答案 0 :(得分:0)
请原谅我,如果我不熟悉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)
答案 1 :(得分:0)
我只是想在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中实现这一点。