我从异步委托(delegate)调用中获取位置日期时间。我想将标签值设置为该委托(delegate)方法返回的日期时间值。但问题是这是在异步方法完成之前呈现的。而且我等不及这个异步方法,因为它使用非常慢的第三方服务。所以我实现了一个异步回调函数,并且在该回调函数内我想运行一个 javascript 脚本函数
。但问题是它没有填充 javascript 方法。这是我的代码-
public void DateTimeCallBack(IAsyncResult asy)
{
AsyncResult result = (AsyncResult)asy;
DateTimeDelegate dtdel = (DateTimeDelegate)result.AsyncDelegate;
lblDateTime.Text = dtdel.EndInvoke(asy).ToString("MMM dd, yyyy"); // this is not setting the value to lable
// so I want to use javascript
ScriptManager.RegisterStartupScript(this, this.GetType(), "ScriptNo", "window.setTimeout(\"alert('Hello');\",0);", true);
}
这不是填充 javascript 警报消息。AsyncCallback 方法不支持这种 javascript 方式吗?或者还有其他方法可以做到同样的事情吗?
最佳答案
您不会从服务器端“调用”JavaScript 函数。您将 javascript 输出到 Web 浏览器,然后浏览器执行服务器生成的脚本标记内的所有内容。我不确定你的代码试图做什么,我什至不确定那是什么语言,因为你没有说(我猜是 C#),但你需要清楚地了解两者之间的区别服务器端代码和客户端代码,以及它们如何交互。
服务器端代码仅生成浏览器将运行的 JavaScript,它不能直接影响它的运行时。
同样,javascript 也不能直接“调用”服务器端的函数,您只能发出 HTTP GET 或 POST 请求,然后由服务器端代码处理。
关于javascript - 如何从委托(delegate) AsyncCallback 函数调用 javascript 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4555669/