在C#,Asp.net中,我正在通过我的代码隐藏创建Javascript代码:
var silverlightControl = null;
function PluginLoaded(sender, args)
{
silverlightControl = sender.getHost();
silverlightControl.Content.SilverlightScriptableObject.PerformRfidRead(); //**1**
}
function CallSilverlight()
{
silverlightControl.Content.SilverlightScriptableObject.PerformRfidRead(); //**2**
}
var tid = setInterval(RefreshTimer, 2000);
function RefreshTimer()
{
CallSilverlight();
}
它在Firefox和Chrome上完美运行但似乎无法在IE 9上运行!总是正确调用PluginLoaded方法。但似乎我的“silverlightControl”var在方法调用之间失去了它的价值......
在sender.getHost()之后直接调用我的方法“PerformRfidRead()”(参见 1 )时,一切正常。让计时器每隔2秒进行一次调用(参见 2 ),似乎我的var为空,我收到以下错误消息:
内容»:null对象或未定义
有什么想法吗?
感谢您的帮助。
答案 0 :(得分:0)
我终于指出了这个问题:
Firefox,Chrome和IE9在计时器方面有不同的行为!
我的RefreshTimer方法调用太早,并且不能很快调用PluginLoaded方法来初始化silverlightControl对象!
因此,我通过这样做纠正了:
function CallSilverlight()
{
if(silverlightControl != null)
{
silverlightControl.Content.SilverlightScriptableObject.PerformRfidRead(); //**2**
}
}
希望这可以帮助别人......