如何通过vbscript为IE(少于9个)元素触发自定义事件

时间:2013-03-06 09:33:30

标签: html internet-explorer vbscript

我想通过vb-script触发自定义事件。我可以通过jscript

触发自定义事件
 function customEventFn()
 {
 //function body
 };
 var element = document.getElementById("elem id");
 customEventFn.call(element);

但这种方法在Vbscript中不起作用。 任何团体都有任何想法在Vbscript中实现这个目标

2 个答案:

答案 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中实现这一点。