我已经创建了一个带有UserControl的VB.Net ClassLibrary。我可以从HTML页面加载它并调用我创建的方法。这按预期工作。我已经尝试了几个例子来说明如何将事件从VB代码提升到js调用者,并且它们似乎都没有用(我使用的是IE7)。
我在做什么:
Public Class ctrlABC
Public Event TestEvent()
然后当我想提出这个事件时,我打电话给:
RaiseEvent TestEvent()
在我的JS文件中,我尝试了以下内容:
<OBJECT id="myControl1" name="myControl1" classid="ABC.dll#ABC.ctrlABC" width=400 height=400></OBJECT>
<SCRIPT LANGUAGE=javascript FOR=myControl1 EVENT=TestEvent>
myControl1_TestEvent()
</SCRIPT>
<script>
function myControl1_TestEvent(){
alert("raised");
}
</script>
==================然后我试了===================
<OBJECT id="myControl1" name="myControl1" classid="ABC.dll#ABC.ctrlABC" width=400 height=400></OBJECT>
<script>
function myControl1::TestEvent(){
alert("raised");
}
</script>
===========================
但似乎都没有得到这个事件。有没有人有任何想法?
谢谢!
答案 0 :(得分:1)
我没有使用&lt; object&gt;之类的,所以我无法确定,但我希望您在Javascript中将事件处理程序声明为常规事件。
在元素属性中:
<object id="myControl1" .... onTestEvent="functionName"></object>
或作为对象中的函数:(可能不是正确的术语)
document.getElementById("myControl1").onTestEvent = functionName
或使用事件注册功能:
document.getElementById("myControl1").addEventListener("TestEvent", functionName, false);
(这些是浏览器特定的,这个是针对firefox的,不确定其他人)
每个“functionName”都是你在&lt; head&gt;中声明的函数。