我在页面中嵌入了两个 Silverlight 实例,如下所示(内容仅简化为相关细节):-
<object id="SL1" data="data:application/x-silverlight-2," type="application/x-silverlight-2">
<param name="source" value="/clientBin/Common.xap"></param>
<param name="minRuntimeVersion" value="3.0.40624.0"></param>
<param name="windowless" value="True"></param>
<param name="onload" value="silverlight_onload"></param>
<param name="initParams" value="some configuration here"></param>
</object>
<object id="SL2" data="data:application/x-silverlight-2," type="application/x-silverlight-2">
<param name="source" value="/clientBin/Common.xap"></param>
<param name="minRuntimeVersion" value="3.0.40624.0"></param>
<param name="windowless" value="True"></param>
<param name="onload" value="silverlight_onload"></param>
<param name="initParams" value="a different configuration here"></param>
</object>
如您所见,两者都objects
指向同一个 xap,但 initParams 中的内容不同。
但是请注意,onload 参数指向相同的函数名。这个问题的这个特定部分是不变的。
在全球范围内的 javascript 其他地方,我有:-
function silverlight_onload(sender, eventargs)
{
//Magic pixie dust here
}
目标是获取sender
并确定哪些对象元素是事件的来源。直截了当(但出于这个问题不可接受的原因)的答案是使用两个不同的功能。我正在寻找不需要将新函数添加到每个 SL 对象的全局命名空间的东西。
奖励,感谢任何能告诉我为什么 SL 不能从主机浏览器获得更多帮助并更像其他元素事件(如 onlick)处理 onload 参数的人。例如,要求浏览器eval("function() {" + onload + "}"
将返回函数附加到 onload 事件。