【发布时间】:2012-03-06 15:09:21
【问题描述】:
在 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”变量在方法调用之间失去了它的价值......
在 sender.getHost() 之后直接调用我的方法“PerformRfidRead()”时(参见 1),一切正常。当让计时器每 2 秒调用一次时(参见 2),我的 var 似乎是空的,并且收到以下错误消息:
内容 » : null 对象或未定义
有什么想法吗?
感谢您的帮助。
【问题讨论】:
-
不是答案,但考虑将您的 Javascript 代码放在外部
js文件中,并使用 RegisterClientScriptInclude() 从您的页面引用它。这将提高您的代码的可读性和可维护性。也欢迎以同样的方式编辑您的问题,所有这些对ScriptBuilder.Append()的电话都让我头晕目眩。 -
嘿,你去,应该更具可读性:)
标签: c# javascript asp.net internet-explorer-9